RX66NとRX72Nにおいて、MTU8を経過時間を知るために、クリアなしのカウンタとして使用しています。スマートコンフィグレータデータにて、カウンタクロックの選択を、「PCLK/1024」と設定しました。これを動かすと、「PCLK/256」で動作していました。
「Config_MTU8.c」の「R_Config_MTU8_Create()」で、分周の設定は、以下のコードになっていました。 MTU8.TCR.BYTE = _00_MTU_CKEG_RISE | _00_MTU_CKCL_DIS; MTU8.TCR2.BYTE = _05_MTU_PCLK_1024;この設定は、MTU0やMTU5の設定と思われます。なぜこの設定で「PCLK/256」の動作をするかは不明です。
以下のように「Config_MTU8_user.c」の「R_Config_MTU8_Create_UserInit()」で、上書きしました。 MTU8.TCR.BYTE = _00_MTU_CKEG_RISE | _00_MTU_CKCL_DIS | _05_MTU_PCLK_1024; MTU8.TCR2.BYTE = 0;これで、正しく「PCLK/1024」になりました。
この現象は、RX66NとRX72Nの両方で発生しています。e2studioを使っており、2024-07以前、2024-07、2024-10の3バージョンとも同じ現象が出ます。スマートコンフィグレータデータで、1024以外の分周を選択すると、正常なコードを生成しています。
なにか、設定が足りないのでしょうか。今回は、この変更で正常動作していますので、問題ないのですが、将来のため、ソースの手動修正しなくてもいい方法がありましたら教えていただきますように、お願いいたします。
>なにか、設定が足りないのでしょうか。
スマート・コンフィグレータのバグだと思います。
(スマート・コンフィグレータ Version: 2.23.0, ノーマルモードタイマ1.12.0 で、上記現象は再現しますね)
>なぜこの設定で「PCLK/256」の動作をするかは不明です。
ハードウェアマニュアルでは設定禁止の設定なので、たまたま内部の回路的に、分周比1/256に設定されるのかも知れません。
現状では、R_Config_MTU8_Create_UserInit() 内などでレジスタ値を再設定するしかないと思います。
tf様
ありがとうございました。
現状の方法で、進めることにします。