RX63N cs+ PDG2を使用しています。
PDG2で提供していない周辺機能を使ったとき割込み設定処理はどのように組み込んだらよろしいでしょうか。
例えばcanを使いたい時など?
ちなみに割込みを使わなければ、勝手に追加すればよいことはわかりました。
しかし、割込み設定はPDG2にしっかり組み込まれているため、悩んでいます。
sakuraisanさん、こんにちは。NoMaYと申します。> 割込み設定はPDG2にしっかり組み込まれているこれはどういうことを指していますか? PDG2(というかRPDL)のソースの割り込み設定は、以下のように#pragma interruptで行われていて、通常の割り込みベクタテーブル(通常の割り込みベクタ配列)はソース上に存在していません(通常の割り込みでは無く、例外なら、例外ベクタテーブルが存在しますが)ので、上の話と噛み合わないような気がするのです。他方で、グループ割り込みに関しては、以下のようになっていて、ここら辺に何か追加しなければならない場合は、確かに少し面倒ですけれども。通常の割り込みの例1Interrupt_SCI.c
#if FAST_INTC_VECTOR == VECT_SCI0_RXI0#pragma interrupt Interrupt_SCI0_RXI0(vect=VECT_SCI0_RXI0, fint)#else#pragma interrupt Interrupt_SCI0_RXI0(vect=VECT_SCI0_RXI0)#endifvoid Interrupt_SCI0_RXI0(void){以下省略
通常の割り込みの例2Interrupt_SPI.c
#if FAST_INTC_VECTOR == VECT_RSPI0_SPRI0#pragma interrupt Interrupt_RSPI0_SPRI0(vect=VECT_RSPI0_SPRI0, fint)#else#pragma interrupt Interrupt_RSPI0_SPRI0(vect=VECT_RSPI0_SPRI0)#endifvoid Interrupt_RSPI0_SPRI0(void){以下省略
グループ割り込みの例Interrupt_INTC.c
#if FAST_INTC_VECTOR == VECT_ICU_GROUP12#pragma interrupt Interrupt_Group_12(vect=VECT_ICU_GROUP12, fint)#else#pragma interrupt Interrupt_Group_12(vect=VECT_ICU_GROUP12)#endifvoid Interrupt_Group_12(void){ do { /* RSPI0 error interrupt */ if (ICU.GRP[GRP_RSPI0_SPEI0].BIT.IS_RSPI0_SPEI0 == 1) { /* Call the user function */ if (rpdl_SPI_error_callback_func[0] != PDL_NO_FUNC) { rpdl_SPI_error_callback_func[0](); } }途中省略 /* SCI12 error interrupt */ else if (ICU.GRP[GRP_SCI12_ERI12].BIT.IS_SCI12_ERI12 == 1) { if (sci_global[12].RX_Error_callback_func != PDL_NO_FUNC) { /* Call the error handler */ sci_global[12].RX_Error_callback_func(); } else { /* Clear the SSR error flags; Preserve MPBT(b0) and write 1 to reserved bits (b6 and b7)*/ SCI12.SSR.BYTE = (uint8_t)((BIT_7 | BIT_6) | (SCI12.SSR.BYTE & (uint8_t)BIT_0)); } } /* Call the user function */ if (rpdl_INTC_group_callback_func[7] != PDL_NO_FUNC) { rpdl_INTC_group_callback_func[7](); } }while(ICU.IR[IR_ICU_GROUP12].BYTE != 0x00u);}
sakuraisanさん、こんにちは。NoMaYです。>PDG2を使用しないときはintprg.cに追加すればよかったようですが。この文面をしばらく見ていて、ふと感じたのですが、PDG2を使わずに割り込みを使った経験というもの自体がそもそも無かったりしますか?