こんにちは。NoMaYです。最近、以下のスレッドに関わったのですが、そういえばFITのR_SCI_RXモジュールでは送信リングバッファを使えますので、仕組み上は、割り込みルーチン内からでもprintfを使うことが出来ても良さそうな気がします。ということで、いつものように、ちょっと好奇心からスレッドを立ててみました。いつものように、ぼちぼちと続きます。Config_ICUでのIRQの設定についてcommunity-ja.renesas.com/cafe_rene/forums-groups/beginners/f/002-2095199602/9604/config_icu-irq本当は、割り込みルーチン内からデバッグコンソールへ出力する方法を考えたいところですけれども、以下の理由で今回は保留です。(1) 割り込み駆動方式でデバッグコンソールへ文字書き込みする方法が無い(少なくとも公開されている情報では出来ない)(2) ポーリング方式でデバッグコンソールへ文字書き込みする方法では割り込みルーチン内で使うには性能上の懸念がある[追記]こんなことを考えたのも、以前に別スレッドにURLを書いた個人事業主?さんが、こういう記事を執筆されていましたのを、たまたま見掛けたからかも知れません。RAファミリprintfデバッグ3方法2022年10月7日 WithHappyhappytech.jp/wordpress/2022/10/07/ra-family-printf-debug-3-method/
こんにちは。NoMaYです。ちなみに、幾つか前の投稿のMTU1とMTU2を組み合わせて作ったICLK同期の32ビットカウンタの以下の読み出し処理ですが、せいぜい今回の局面ぐらいしか考えていませんので、ガッツリと使う場合には、タスク切り替えや(多重割り込み含めて)割り込みに対して安全となるよう、getpsw(),clrpsw_i(),setpsw_i()で大域的に割り込み不可にする処理を追加する必要があります。
uint32_t timer_gettick(void){ uint32_t cycles; /* Stop the lower 16-bit counter (it makes also the upper 16-bit counter stop) */ R_Config_MTU2_Stop(); /* Combine two 16-bit counters to form 32-bit counter value */ cycles = ((uint32_t)(MTU2.TCNT) & 0xffff); cycles |= ((uint32_t)(MTU1.TCNT) << 16); /* Resume the lower 16-bit counter (it makes also the upper 16-bit counter resume) */ R_Config_MTU2_Start(); return cycles;}