問題タブ [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.

0 投票する
1 に答える
226 参照

c - XC8 コンパイラ: main() の先頭に戻るプログラム

PIC マイクロコントローラーのプログラミングは初めてで、コードの一部に苦労しています。関数ではmain()、いくつかのレジスタを設定してから、無限 while ループに入ります。このwhileループでは、2番目の関数が呼び出され、遅延が発生します(その後を含む他の関数を呼び出さずに戻ります。ただし、2番目の関数が終了すると、プログラムは続行するのではなくmain()、の先頭に戻るようですmain()while ループ。

編集1:さらにいくつかのテストを行いましたが、機能がなくても問題が発生するため、何らかの理由でマイクロコントローラーが毎秒程度リセットされていることはほぼ確実です. リセットの理由を示すレジスタがあるはずなので、それを見てみましょう。

編集 2: これはコードの非常に基本的なバージョンで、RC0 LED が 2 秒ごとに短く点滅します (オフのままにする必要があります)。

編集 3: リセットの原因となったのはウォッチドッグ タイマーであることがわかりました。CLRWDT() をループに入れることで修正されました。