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.h の 76 行で定義されています。

#define GET_TOLERANCE   100
 

hw_timer.h の 75 行で定義されています。

#define INHNO_TIMER   TIM_INTLVL
 

hw_timer.h の 51 行で定義されています。

#define MAX_CLOCK   ((CLOCK) 0xffffffff)
 

hw_timer.h の 70 行で定義されています。

参照元 hw_timer_initialize().

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

hw_timer.h の 64 行で定義されています。

参照元 hw_timer_initialize().

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

hw_timer.h の 65 行で定義されています。


型定義

typedef UW CLOCK
 

hw_timer.h の 58 行で定義されています。


関数

Inline BOOL hw_timer_fetch_interrupt (  void   ) 
 

hw_timer.h の 164 行で定義されています。

参照先 sil_rew_mem()・TIM_STATUS・TIM_STATUS_TO.

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

関数の呼び出しグラフ:

Inline CLOCK hw_timer_get_current (  void   ) 
 

hw_timer.h の 145 行で定義されています。

参照先 sil_rew_mem()・sil_wrw_mem()・TIM_SNAPH・TIM_SNAPL・TIMER_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.h の 86 行で定義されています。

参照先 assert・ena_int()・MAX_CLOCK・sil_wrw_mem()・TIC_DENO・TIC_NUME・TIM_CONTROL・TIM_CONTROL_COUNT・TIM_CONTROL_ITO・TIM_CONTROL_START・TIM_CONTROL_STOP・TIM_INTLVL・TIM_PERIODH・TIM_PERIODL・TIM_STATUS・TO_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.h の 118 行で定義されています。

参照先 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.h の 129 行で定義されています。

参照先 sil_wrw_mem()・TIM_CONTROL・TIM_CONTROL_STOP・TIM_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 によって生成されました。