SYSTEM.OSCOVFSR.BIT.MOOVFでの無限ループについて

rx65nでadコンバータとの通信を行っているのですが実行してもその結果が確認できず停止したら

以下の画像のように無限ループしていました。

他の方も同じような事態に陥っていたのですが解決方法がわからなったので質問させていただきます。

どなたかわかる方は教えていただけるとありがたいです。

Parents
  • たむら さん、こんにちは。NoMaYです。

    TB-RX65Nということであれば、RXスマートコンフィグレータのクロック生成設定画面で、以下のドキュメントの6ページ目の図のように設定してみて下さい。

    RX65Nグループ Target Board for RX65N LED点灯制御プログラム アプリケーションノート
    www.renesas.com/jp/ja/search/keyword-search.html#genre=document&q=r20an0464
    6ページ目

    5. RX65Nクロック生成ブロック図
    RX65Nクロック生成ブロック図およびLED点灯制御プログラムのクロック生成ルートを図5-1に示します。

  • NoMaYさん、回答ありがとうございます。

    6ページのように設定してみたのですがまた無限ループしてしまいました。

    以下に設定したブロック図を載せます。

    よろしくお願いします。

  • たむら さん、こんにちは。NoMaYです。

    6ページの図ではクロック伝達経路としてクロック元に高速オンチップオシレータが選択されていますよ。他方、たむらさんはクロック元にメインクロックを選択されている、という点が違いますよ。TB-RX65Nにメインクロックは実装されていませんので、ソースのその箇所で無限ループしてしまうのです。(元々のe2 studio向けのサンプルプログラムは高速オンチップオシレータが選択されているのですが、先日プロジェクト変換時にいろいろあったことにより、その設定がCS+向けに変換されたプロジェクトにうまく引き継がれなかったのです。(と推測しています。))

  • NoMaYさん、回答ありがとうございます。

     

    上記のブロック図であってますでしょうか?

    このように設定したところ今までデバックをしたら自動的に実行していたのに対し

    この図のように停止していました。またここから実行して停止すると

    ここで停止していました。

     

    何度もすみませんがよろしくお願いします。

  • たむら さん、こんにちは。NoMaYです。

    クロック設定は大丈夫だと思います。また、main()の先頭で一時停止するのはCS+のデフォルト設定ですし、main()の最後を無限ループにしていないくてmain()を抜けるようにしていた場合にmain()を抜けた先で無限ループするのは組み込みC言語プログラムでは普通にあることですよ。

    そういうmain()の挙動からして分からないのですね。そうなると、fopen()でファイルを開いていたり、fprintf()でファイルに書こうとしていたりするのも、間違えてやっているのではありませんか。今までHSBRX65か何かのベースボード向けの拡張ボード(Arduinoのシールドのようなもの)がTB-RX65Nに接続してあり、その拡張ボードにSDカードコネクタなどが載っていて、それ向けのファイル操作ライブラリが用意されていて、という状況かなと思っていたのですが、そうでは無いような気がしてきましたが、どうなのでしょうか。TB-RX65Nは単体で使っていますか?

  • NoMaYさん、回答ありがとうございます。

    TB-RX65Nは企業と連携しているので詳細は言えませんがあるユニバーサル基盤に乗っていています。
Reply Children
No Data