【 367】 08/01/04: H8S TPU割り込み設定の覚書
意外と載ってないTPU割り込みの設定方法。
最低限何すればいいのか?
初心者用です。
TPU0に設定するとして。
タイマー割り込みを一定間隔でコールする場合。
●hwsetup.c HardwareSetup()内で。
●intprg.c
●任意のソース Tpu0Handler()を定義
最低限何すればいいのか?
初心者用です。
TPU0に設定するとして。
タイマー割り込みを一定間隔でコールする場合。
●hwsetup.c HardwareSetup()内で。
INTC.IPRF.BIT._TPU0 = 5;
*********************
MSTPCR.BIT._TPU = 0;
TPU.TSYR.BIT.SYNC0 = 0;
TPU0.TMDR.BYTEACCESS= 0;
TPU0.TIOR.WORD = 0;
TPU0.TCNT = 0;
TPU0.TCR.BYTEACCESS = 0x20;
TPU0.TIER.BIT.TGIEA = 1;
TPU0.TGRA = 37500-1;
TPU.TSTR.BIT.CST0 = 1;
●intprg.c
// vector 40 TGI0A TPU0
__interrupt(vect=40) void INT_TGI0A_TPU0(void) {
Tpu0Handler();
}
●任意のソース Tpu0Handler()を定義
void Tpu0Handler(void)
{
TPU0.TSR.BIT.TGFA = 0; //コンペアマッチフラグクリア
タイマー割り込みで実行させたい処理を記述
set_imask_exr(0); //割り込み許可
}