Uint32 time_flg; /* 割り込みフラグ */
...
void vblankOut() /* V-BLANK OUT実行関数 */
{
Uint32 intr_count = 0; /* 割り込みカウンタ */
...
TIM_T1_DISABLE(); /* タイマ1割り込みディセーブル */
TIM_T1_SET_MODE(TIM_MD_LINE); /* 毎ライン割り込み発生を指定 */
TIM_T1_SET_DATA(10);
/* ラインの10ビット目に割り込み発生タイミングを指定 */
time_flg = OFF; /* 割り込みフラグをオフにする */
TIM_T1_ENABLE(); /* タイマ1割り込みイネーブル */
...
for(intr_count < ALL_LINE_NUM){
/* 全ラインの割り込みが実行されるまで */
changeLine(intr_count); /* 奇数ラインの反転 */
intr_count ++; /* ラインのカウント */
}
}
void timeIntr() /* 割り込み実行関数 */
{
time_flg = ON; /* 割り込みフラグをオンにする */
}
機能 | 関数形式マクロ | 番号 |
|---|---|---|
カウンタ値−>マイクロ秒変換 | TIM_FRT_CNT_TO_MCR | 15 |
マイクロ秒−>カウンタ値変換 | TIM_FRT_MCR_TO_CNT | 16 |
機能 | 関数形式マクロ | 番号 |
|---|---|---|
FRT初期化 | TIM_FRT_INIT | 8 |
機能 | 関数形式マクロ | 番号 |
|---|---|---|
カウンタ値設定(16ビット) | TIM_FRT_SET_16 | 9 |
カウンタ値取得(16ビット) | TIM_FRT_GET_16 | 10 |
void sysInit()
{
TIM_FRT_INIT(8); /* 分周を8に設定 */
...
}
void writeFrameBuff()
{
Uint16 count; /* 取得カウント値格納領域 */
float micro_sec; /* マイクロ秒格納領域 */
TIM_FRT_SET_16(0); /* カウント値に0を設定する */
WriteAllVram(); /* 測りたい処理実行 */
count = TIM_Frt_Get_16(); /* カウント値を取得する */
/* countはWriteAllVram()の実行時間を示 */
micro_sec = TIM_FRT_CNT_TO_MCR(count);/* カウンタ値をマイクロ秒に変換する */
printDisplay(micro_sec); /* 画面に経過時間の表示をする */
}
★PROGRAMMER'S GUIDE
★タイマライブラリ