e2 studioのスマートコンフィギュレータで、外部発信入力で12MHzの発信器を設定して、そこから自動コード生成を行って、プログラムを動かそうとしています。
事前にHOCOの内部クロックで動かした徳は、プログラムは正常に動きました。
しかしながらHOCOを解除して上図の外部発信入力に変更して自動コード自動生成したプログラムを動かすと mcu_clocks.c の以下の個所で、発信安定待ちする処理で、無限に待っている状態になります。
/* WAIT_LOOP */ while(0 == SYSTEM.OSCOVFSR.BIT.MOOVF) { /* The delay period needed is to make sure that the Main clock has stabilized. If you use simulator, the flag is not set to 1, resulting in an infinite loop. */ R_BSP_NOP(); }
コメントには、メインクロックの安定待ちであることと、シミュレータを使うと1にならないので無限ループになるとの記載がありました。
シミュレータ設定はしていないと思いますが、設定箇所を失念したので確認ができません。
以下の①②に関しまして、ご意見いただけませんでしょうか?
①e2 studioでシミュレータ設定かどうかを確認する方法と、変更する箇所に方法
②その他、上記箇所で無限ループになる原因と対処方法
タイマの精度がいるためどうしても発信器が使いたいという状況です。
ご協力、よろしくお願いいたします。
●発振器が発振しているか確認
イネーブルのON/OFFでOFFになっていないか。
発振器の電源電圧は合っていますか。
5V品を3.3Vで使ったりとか。
●CPUのクロック端子を間違えていないか
間違えて入力では無く出力に繋いでないか。
リカルドさん
お返事ありがとうございます。
コメントの内容は正しく設定できていると思います。
今回の回路図を、張り付けておきます。
ご指摘の点がありましたら宜しくお願いします。
リカルドです
回路はOKです。電源のジャンパーが付いていますか。電圧は供給されていますか?
発振波形をオシロで確認できなければ、少し荒い方法ですが発振電圧を直流レンジで測る方法が有ります。
発振が止まっていれば、0Vか3.3V、発振していれば1.6Vぐらいになる筈です。
エレキ専任の担当者が確認したところ、発振器を交換したらオシロで波形が確認できました。
発振器が故障していたようです。
これでソフトが動くか確認してみます。
ありがとうございました。