皆様こんにちは、MXKazと申します。RX621(MTU2)で動いていたコードをRX65N(MTU3a)でも動かしたくて四苦八苦行きしており詰りました。どなたかご教授お願いします。
MXkazさん おはようございます。 NAKAといいます。
ちゃちゃっと書いたら、割り込みに飛びました。確認してみてね!
//***********************************************************************// 関数名 : fn_Init_MTU0(void)// 動作 : マルチタイマユニット0の初期化 // 引数 : // 作成 :…
こんにちは。
MSTPマクロをいじっていなければ、過去のリプライでNAKAさんが仰っているように
これで省電力切り替えになるかと。
SYSTEM.PRCR.WORD = 0xA502; // MSTPCRA(他)レジスタへの書き込み許可MSTP(MTU0) = 0; // 省電力機能解除 (=モジュール動作)SYSTEM.PRCR.WORD = 0xA500; // MSTPCRA(他)レジスタへの書き込み禁止
mushipanさん、こんばんは。
早速試してみましたところ割り込みがかかりました。ありがとうございました。自分使っているRENESUSのTarget BoardはHOCOとLOCOの設定が有効になっています。MTU割り込みのCLOCKはLOCOが使われているみたいで・・周波数は多分設定でいかようにもなると思います。自分で調べて、ギブアップしたらここのお世話になります。
どうもありがとうございました
NAKAさん、こんばんは。
割り込みかかるようになりました。提供していただいたコードのおかげで、不具合の切り分けがスムーズに行えました。頂いたコードはファイルヘッダと共に使わせて頂きます。ありがとうございました。
MXkazさん おはようございます。 NAKAです。
良かったですね!あまりお力になれなくてすみません。何が原因だったか、気になるぅ~~ (';')?
NAKAさん、こんにちは。NoMaYです。> デフォルトで許可になっているので関係ないかもですが!コード生成で禁止にされてたりして? この認識がおかしいと思うのです。マイコンの初期設定は不許可で、コード生成機能やRXスマートコンフィグレータでは一時的に許可してレジスタを変更していますよ。(そして変更した後で不許可に戻しています。) ひょっとして、コードを新規作成されたのでは無くて、土台は別のところからコピペしたものを使っていて、その土台のところで、昔、NAKAさんの好みのやり方として、プログラム全域で許可したままにする、というのを入れたけれども、すっかり忘れていた、とかないでしょうか?
NoMaY先生 おはようございます。 NAKAです。
僕なんか勘違いしてます?
デフォルトで許可というのは、リセット後の値がリードライト許可になっているという意味でした。
>NAKAさんの好みのやり方
⇒そうなんです。相変わらずあまりコード生成機能を使ってません、タイマーや通信のボーレートの値を確認するくらいです。
たしかに、タイマーやタイミングが何等かの原因で変わっちゃうのは良くないので、タイミングに変更がないのであれば、初期設定後は禁止にしておいたがいいですね!(^^)/
NAKAさん、こんにちは。NoMaYです。そちらのMTUの個別のレジスタのことでしたか。私はMTUに対するMSTPレジスタの話をしていました。こちらの方が、リセット後の設定が以下のようになっているのです。(1) MTU動作停止(他のモジュールも同様)(1') つまりMTUレジスタ全般へのライト不可(というか上に書いたようにMTU動作停止の状態です)(2) MTUに対するMSTPレジスタへのライト不可(他のモジュールに対するMSTPも同様)なので、mushipanさんの対処が必要なのですけれども、そのような処理を入れたことを忘れてないでしょうか?ということなのでした。(そして、それが必要なことが最初のhirakuni45さんからのMXkazさんへのアドバイスだったのです。)
>何が原因だったか、気になるぅ~~ (';')?mushipanさんが答えていただいていましたね!!わかりました。PRCRのことかぁ~!ここ何年もRXを触ってないので、すっかり忘れてた!NAKAは初期化(下記)の中でやっていたので、MTU0ちょこちょこ書いただけで動いちゃったんですね!(^^)/ あぁぁ失礼しました!m(__)m
//***********************************************************************// 関数名 : fn_Init_Device(void)// 動作 : デバイスの初期化 // 引数 : // 作成 : NAKA 17.06.19// **********************************************************************void fn_Init_Device(void){ clrpsw_i(); //割り込み禁止 SYSTEM.PRCR.WORD = 0xA50B; //プロテクト解除 MPC.PWPR.BIT.B0WI = 0; //PFEWE書き込み 0:許可 MPC.PWPR.BIT.PFSWE = 1; //PFS書き込み 1:許可
fn_Init_Clock(); //クロックの初期化 fn_Init_RTC(); //RTCの初期化 fn_Init_Port(); //ポートの初期化 fn_Init_TPU0(); //TPU0の初期化 fn_Init_MTU0(); //MTUU0の初期化 fn_Init_IRQ8(); //外部割り込み8の初期化 fn_Init_SCI2(); //SCI2の初期化 fn_Init_CAN0(); //CAN0の初期化 MPC.PWPR.BIT.PFSWE = 0; //PFS書き込み 0:禁止 MPC.PWPR.BIT.B0WI = 1; //PFEWE書き込み 1:禁止 SYSTEM.PRCR.WORD = 0xA500; //プロテクト!(書き換え禁止) setpsw_i(); //割り込み許可 }
P.S.
最新の書き込みが一番下にないと、見にくいですね!
こんにちは。NoMaYです。別スレッドにChatGPTの話題がありますけれども、このスレッドの質問をChatGPTへ質問してみたらどんな回答になるのかなぁ、とかも気になったりします。
NoMaYさん NAKA です。
open AIの chat GPTですね!
Q)マイクロコンピュータチップを発明した>は誰ですか?そして、そのLSIまたはそのプロジェクトの名前は何でしたか?
A)マイクロコンピューターチップは、1971年にインテルコーポレーションのフェデリコファギンが率いるエンジニアチームによって発明されました。このプロジェクトはIntel 4004と呼ばれ、最初の市販マイクロプロセッサでした。