問題タブ [xc8]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c - XC8 コンパイラ: main() の先頭に戻るプログラム
PIC マイクロコントローラーのプログラミングは初めてで、コードの一部に苦労しています。関数ではmain()
、いくつかのレジスタを設定してから、無限 while ループに入ります。このwhileループでは、2番目の関数が呼び出され、遅延が発生します(その後を含む他の関数を呼び出さずに戻ります。ただし、2番目の関数が終了すると、プログラムは続行するのではなくmain()
、の先頭に戻るようですmain()
while ループ。
編集1:さらにいくつかのテストを行いましたが、機能がなくても問題が発生するため、何らかの理由でマイクロコントローラーが毎秒程度リセットされていることはほぼ確実です. リセットの理由を示すレジスタがあるはずなので、それを見てみましょう。
編集 2: これはコードの非常に基本的なバージョンで、RC0 LED が 2 秒ごとに短く点滅します (オフのままにする必要があります)。
編集 3: リセットの原因となったのはウォッチドッグ タイマーであることがわかりました。CLRWDT() をループに入れることで修正されました。