バグ←JTAGのバカヤロー!!!

前回の前進の記事の後確認してみると、

なぜかモーターがひとつ逆転しないという事件が発生していました。

 

……おかしい。

僕のプログラムはforループで一ビットずつずらして制御していたのに、モーター1つだけ回らないなんて!

 

で、回路のせいだと思って見てみると、間違ってない。

そしてポートからの出力を見てみると、なんと、ずっとHighでした。

 

そしてプログラムとにらめっこを続けること三時間……結局間違いは見つからず、帰宅しました。

そしてお風呂で一つの仮説を思いつきました。
”ポート兼用機能がONになっているのではないか?”

 

さっそく検索、すると、同じ事で、同じポートで悩んでいる人が!

 

というわけで、ヒューズビットの設定が工場出荷時だとJTAGが有効になっていて、一部のピンがI/Oとして使えないようになっている、とのことです。

HFuseの上から2つめのビットを1にすればJTAGをオフに出来ます。

一般人は使わない人がほとんどだと思いますので、みなさんも気をつけてください!

 

僕の場合はATMega644PのPORTCの2-5ビット目でした。マイコンによってどこのポートかは違います。

 

……大会直前の貴重な時間をよくも奪ってくれたな……

コメントを残す

メールアドレスが公開されることはありません。

次のHTML タグと属性が使えます: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>