前回の前進の記事の後確認してみると、
なぜかモーターがひとつ逆転しないという事件が発生していました。
……おかしい。
僕のプログラムはforループで一ビットずつずらして制御していたのに、モーター1つだけ回らないなんて!
で、回路のせいだと思って見てみると、間違ってない。
そしてポートからの出力を見てみると、なんと、ずっとHighでした。
そしてプログラムとにらめっこを続けること三時間……結局間違いは見つからず、帰宅しました。
そしてお風呂で一つの仮説を思いつきました。
”ポート兼用機能がONになっているのではないか?”
さっそく検索、すると、同じ事で、同じポートで悩んでいる人が!
というわけで、ヒューズビットの設定が工場出荷時だとJTAGが有効になっていて、一部のピンがI/Oとして使えないようになっている、とのことです。
HFuseの上から2つめのビットを1にすればJTAGをオフに出来ます。
一般人は使わない人がほとんどだと思いますので、みなさんも気をつけてください!
僕の場合はATMega644PのPORTCの2-5ビット目でした。マイコンによってどこのポートかは違います。
……大会直前の貴重な時間をよくも奪ってくれたな……