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); /* 画面に経過時間の表示をする */ }