- ベストアンサー
PIC のプログラムについて どうすれば終了できますか?
PICのプログラムは実行させると、永遠にmain関数がループするようになっていると思うのですが、それを抜け出すにはどのようにしたらいいでしょうか? 例えば #include <pic.h> void main(void) { int a,b; a=1; if(a == 1) ????????//main脱出したい } ?の部分をどのように書けば脱出できますか?
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
一般的には、main が無限ループするようにはなっていないと思います。 ただ、普通は、main() の中で、無限ループにはしますが。 あと、マイコンの仕様によっては、プログラムしていない範囲のプログラムメモリの内容を勝手にプログラムだと判断して実行したあげく、リセットがかかってしまう(と、一見無限ループしているように見える)場合はありますが。 単に動作を止めたいのであれば、その箇所で無限ループさせればいいのですが。 while(1); とか。 本当に main() を抜けたいのなら、何も書かなくて良いです。そのまま、メインの下端から抜けます。 ただし、その後はどうなるかわかりません。たまたま(再度リセットがかかって)無限ループしているように見えるかも知れません。 途中から抜けたいのであれば、 return; でいけるかも知れません。これは、スタートアップが、main() への制御をサブルーチンコールで移しているか、ジャンプで移しているかで、動きが変わります。
その他の回答 (1)
- MASA_H
- ベストアンサー率42% (64/151)
メインループを抜ける=終了 のような気がするのですが、何がしたいのですか? メインループを抜け別のループに入りたいなら別にほかにループを作ればいいですし。 電源断の様なことならソフトだけでは無理だったはず。
お礼
エラーをセグメントに表示させてエラーになったらSTOPするプログラムを書きたいとおもっていました。いろいろアドバイスありがとうございました。
お礼
動作をストップさせたかったのでWhile(1)をつかって見ます。 ありがとうございます。