タイマ割り込みを2つ宣言したプログラムの例
おそらく、割り込みにとして動作させたい関数を”#pragma interrupt(関数名)”で宣言してあげれば動作してくれるらしい。ちなみに、下のプログラミングだと、2つのタイマ割り込みを使用している。多分これで動くはず。”ITU1.GRA = 0x4E20”などの値を変えてやれば足し算されるスピードも変化するはず。
#include <3048f.h> #include <myfunc.h> #pragma interrupt(intimia1) /* ITU1の割り込み関数宣言 */ #pragma interrupt(intimia2) /* ITU2の割り込み関数宣言 */ extern int test_val01; extern int test_val02; void main(void) { ITU1.TCR.BYTE = 0x23; /* GRAコンペアマッチ clock 1/8 */ ITU1.GRA = 0x4E20; /* GRAを4E20に設定 約10ms*/ ITU1.TIER.BYTE = 0xF9; /* ITU1のGRAによるコンペアマッチ割込みを許可*/ ITU.TSTR.BIT.STR1 = 0; /* カウント停止状態 */ ITU2.TCR.BYTE = 0x23; /* GRAコンペアマッチ clock 1/8 */ ITU2.GRA = 0x2710; /* GRAを2710に設定 約5ms*/ ITU2.TIER.BYTE = 0xF9; /* ITU2のGRAによるコンペアマッチ割込みを許可*/ ITU.TSTR.BIT.STR2 = 0; /* カウント停止状態 */ test_val01 = 0x0000; test_val02 = 0x0000; while(1); } void intimia1(void) { test_val01++; } void intimia2(void) { test_val02++; }