hw_timer.h

#include <s_services.h>
#include <nios2.h>

hw_timer.hのインクルード依存関係図

このグラフは、どのファイルから直接、間接的にインクルードされているかを示しています。

ソースコードを見る。

マクロ定義

#define INHNO_TIMER   TIM_INTLVL
#define TO_CLOCK(nume, deno)   (TIMER_CLOCK * (nume) / (deno))
#define TO_USEC(clock)   ((clock) * 1000 / TIMER_CLOCK)
#define MAX_CLOCK   ((CLOCK) 0xffffffff)
#define GET_TOLERANCE   100
#define BEFORE_IREQ(clock)   ((clock) >= TO_CLOCK(TIC_NUME, TIC_DENO) - GET_TOLERANCE)

型定義

typedef UW CLOCK

関数

Inline void hw_timer_initialize (void)
Inline void hw_timer_int_clear ()
Inline void hw_timer_terminate ()
Inline CLOCK hw_timer_get_current (void)
Inline BOOL hw_timer_fetch_interrupt (void)


マクロ定義

#define BEFORE_IREQ clock   )     ((clock) >= TO_CLOCK(TIC_NUME, TIC_DENO) - GET_TOLERANCE)
 

hw_timer.h76 行で定義されています。

#define GET_TOLERANCE   100
 

hw_timer.h75 行で定義されています。

#define INHNO_TIMER   TIM_INTLVL
 

hw_timer.h51 行で定義されています。

#define MAX_CLOCK   ((CLOCK) 0xffffffff)
 

hw_timer.h70 行で定義されています。

参照元 hw_timer_initialize().

#define TO_CLOCK nume,
deno   )     (TIMER_CLOCK * (nume) / (deno))
 

hw_timer.h64 行で定義されています。

参照元 hw_timer_initialize().

#define TO_USEC clock   )     ((clock) * 1000 / TIMER_CLOCK)
 

hw_timer.h65 行で定義されています。


型定義

typedef UW CLOCK
 

hw_timer.h58 行で定義されています。


関数

Inline BOOL hw_timer_fetch_interrupt void   ) 
 

hw_timer.h164 行で定義されています。

参照先 sil_rew_mem()TIM_STATUSTIM_STATUS_TO.

00165 {
00166     return(sil_rew_mem((VP)TIM_STATUS) & TIM_STATUS_TO);
00167 }

関数の呼び出しグラフ:

Inline CLOCK hw_timer_get_current void   ) 
 

hw_timer.h145 行で定義されています。

参照先 sil_rew_mem()sil_wrw_mem()TIM_SNAPHTIM_SNAPLTIMER_CLOCK.

00146 {
00147     CLOCK count;
00148 
00149     /* スナップレジスタに書き込むと値をホールドする */
00150     sil_wrw_mem((VP)TIM_SNAPL, 0x00);
00151 
00152     /* カウント値を読み込む */
00153     count = sil_rew_mem((VP)TIM_SNAPL);
00154     count |= sil_rew_mem((VP)TIM_SNAPH) << 16; 
00155     
00156     return(TIMER_CLOCK - count);
00157 }

関数の呼び出しグラフ:

Inline void hw_timer_initialize void   ) 
 

hw_timer.h86 行で定義されています。

参照先 assertena_int()MAX_CLOCKsil_wrw_mem()TIC_DENOTIC_NUMETIM_CONTROLTIM_CONTROL_COUNTTIM_CONTROL_ITOTIM_CONTROL_STARTTIM_CONTROL_STOPTIM_INTLVLTIM_PERIODHTIM_PERIODLTIM_STATUSTO_CLOCK.

参照元 timer_initialize().

00087 {
00088   
00089     CLOCK cyc = TO_CLOCK(TIC_NUME, TIC_DENO);
00090 
00091     /* タイマーストップ */
00092     sil_wrw_mem((VP)TIM_CONTROL,TIM_CONTROL_STOP);
00093     /* タイムアウトステータスクリア */
00094     sil_wrw_mem((VP)TIM_STATUS, 0x00);
00095     
00096       
00097     assert(cyc <= MAX_CLOCK);                     /* タイマ上限値のチェック */
00098     sil_wrw_mem((VP)TIM_PERIODL, (cyc & 0xffff)); /* カウンターセット 下位16bit */
00099     sil_wrw_mem((VP)TIM_PERIODH, (cyc >> 16));    /* カウンターセット 上位16bit */
00100   
00101     /*
00102      * タイマースタート,オートリロード,割込み許可
00103      */
00104     sil_wrw_mem((VP)TIM_CONTROL, TIM_CONTROL_START
00105                                  |TIM_CONTROL_COUNT|TIM_CONTROL_ITO);
00106 
00107     /*
00108      * 割込みコントローラの許可
00109      */
00110     ena_int(TIM_INTLVL);
00111 }

関数の呼び出しグラフ:

Inline void hw_timer_int_clear  ) 
 

hw_timer.h118 行で定義されています。

参照先 sil_wrw_mem()TIM_STATUS.

参照元 timer_handler().

00119 {
00120     /* TOビットのクリア */
00121     sil_wrw_mem((VP)TIM_STATUS,0x00);
00122 }

関数の呼び出しグラフ:

Inline void hw_timer_terminate  ) 
 

hw_timer.h129 行で定義されています。

参照先 sil_wrw_mem()TIM_CONTROLTIM_CONTROL_STOPTIM_STATUS.

参照元 timer_terminate().

00130 {
00131     /* タイマ停止 */
00132     sil_wrw_mem((VP)TIM_CONTROL, TIM_CONTROL_STOP);
00133 
00134     /* 割込み要求のクリア */
00135     sil_wrw_mem((VP)TIM_STATUS, 0x00);
00136 }

関数の呼び出しグラフ:


Copyright © 2006 by TAKAGI Nobuhisa.
このページは Mon Apr 3 23:49:16 2006 に Doxygen によって生成されました。