tag:blogger.com,1999:blog-3870126094099042999.post3243248921260302443..comments2022-03-27T22:43:16.992+09:00Comments on 電子牛乳: AVR がウォッチドッグタイマ発動後に再起動を繰り返す問題レグホンhttp://www.blogger.com/profile/02330400985783949848noreply@blogger.comBlogger6125tag:blogger.com,1999:blog-3870126094099042999.post-20071931597505739892020-02-03T17:19:24.662+09:002020-02-03T17:19:24.662+09:00解消策の報告、どうもありがとうございました。
Arduino を使っていないため確認できないのですが...解消策の報告、どうもありがとうございました。<br />Arduino を使っていないため確認できないのですが、同じ問題で困っている方の助けになると思います。milkandlithttps://www.blogger.com/profile/06347527331164864017noreply@blogger.comtag:blogger.com,1999:blog-3870126094099042999.post-88622244438400519362020-02-03T17:11:13.825+09:002020-02-03T17:11:13.825+09:00Arduino UNO R3 において、ウォッチドッグタイマーリセット時に無限ループ(立ち上がっても...Arduino UNO R3 において、ウォッチドッグタイマーリセット時に無限ループ(立ち上がってもすぐにリセット)になり、調べていてたところ、ここへたどり着きました。<br />こちらに書かれている対策では私も、Arduino ではダメでした。<br /><br />おそらくですが、Arduino IDEでコンパイルするときに、無効化または、組み込まれていないのではないかと思っています。<br /><br />発生する条件を観察したところ、<br />①Arduino IDEで通常の方法で書き込みを行うと無限ループは発生しない。<br />②Arduino IDEで通常の方法で書き込みを行うとブートローダも書き込まれる(起動が遅く、書いたプログラム実行開始まで1.5秒程度の待ち時間が必要)<br />③Arduino IDEでAtmel ICEにてSPI端子から書込みを行うと無限ループが発生する。<br />④Arduino IDEでAtmel ICEにてSPI端子から書込みを行うとブートローダーは書き込まれない(起動が早い。0.5秒程度でプログラム実行開始)<br />⑤ブートローダにはウォッチドッグタイマーリセットが発生した場合は、ウォッチドッグタイマーの無効化と以降のブートローダ実行をスキップするように書かれている。<br /><br /><br />解消策<br />SPI端子から書込みを行う場合にブートローダーも書き込むようにする。<br /><br />具体策<br />①Arduino IDE→「スケッチ」→「コンパイルしたバイナリを出力」を実行する。<br /><br />スケッチ(プログラム)の置かれているフォルダに<br />「XXXX.ino.standard.hex」と「XXXX.ino.with_bootloader.standard.hex」が作成される。<br /><br />②「XXXX.ino.with_bootloader.standard.hex」をAtmel studio7などでSPI端子から書込みを行うと無限ループが解消される。<br />(「XXXX.ino.standard.hex」を上記方法で書き込むと、無限ループが発生する)<br /><br />※解決策は見つかりませんでしたが、解消できましたのでこちらに書かせてもらいました。Anonymoushttps://www.blogger.com/profile/12620065764028895288noreply@blogger.comtag:blogger.com,1999:blog-3870126094099042999.post-61189697430236274872019-02-12T15:24:04.450+09:002019-02-12T15:24:04.450+09:00すみません!! コメントを見落としていたためずっと公開されていませんでした。
実は Arduino ...すみません!! コメントを見落としていたためずっと公開されていませんでした。<br />実は Arduino を使っていないためわかりません。<br />緑の部分は、プログラム本体の実行前に実行される特殊な処理だと思います。<br />Arduino ではそのままではだめなのですね。<br />Arduino での解決策をご存知の方がいましたら教えてください。milkandlithttps://www.blogger.com/profile/06347527331164864017noreply@blogger.comtag:blogger.com,1999:blog-3870126094099042999.post-13074963106088519342018-08-31T15:22:30.956+09:002018-08-31T15:22:30.956+09:00コメント失礼します.
上記の件はArduino pro miniでも通じるでしょうか?
緑の部分のコ...コメント失礼します.<br />上記の件はArduino pro miniでも通じるでしょうか?<br />緑の部分のコードを追加しても無限リセットになってしまうのですが,,Anonymousnoreply@blogger.comtag:blogger.com,1999:blog-3870126094099042999.post-49515936341771346012016-08-10T19:34:07.605+09:002016-08-10T19:34:07.605+09:00コメントどうもありがとうございました。この挙動は直感的でなく、また AVR の機種によって発生したり...コメントどうもありがとうございました。この挙動は直感的でなく、また AVR の機種によって発生したりしなかったりするので厄介ですね。私の場合は main() の開始時に BEEP 音が鳴る回路だったため、BEEP音が止まらなくなってこの現象に気づきましたが、回路によっては大変気づきにくいと思います。お役に立ったようでよかったです。milkandlithttps://www.blogger.com/profile/06347527331164864017noreply@blogger.comtag:blogger.com,1999:blog-3870126094099042999.post-81985830515081978372016-08-10T18:20:15.847+09:002016-08-10T18:20:15.847+09:00電子牛乳さん、いつも貴重な情報ありがとうございます。
本件非常に役立ちました。
最初Mega128に...電子牛乳さん、いつも貴重な情報ありがとうございます。<br />本件非常に役立ちました。<br />最初Mega128にてソフトウェアリセットするロジックを組み想定通りの動きとなっていたのにMega1281へ移殖後にソフトウェアリセット後、繰り返しリセット発動現象が始まりデバッグするにもリセットしてしまうためにっちもさっちもいかず困り果ててた時に、電子牛乳さんの記述にまさに答えがありました。マニュアル意外と端から端まで読んでるつもりでもこのような情報に目がいかないことがほとんどなので、このような情報を的確につかんでる電子牛乳さんはやはり尊敬します。今後も本HP楽しみに読ませていただきます。Anonymousnoreply@blogger.com