ATMEGA168にブートローダを書き込んで・・・Mini Arduino を作成して楽しんでいます。
ATMEGA168が4個あり、4個それぞれにブートローダを書き込んで実験をしているのですが・・・
4個のうち1個だけ、動作がおかしいです。
プログラムを書き込むことも、LEDを点滅させたり・・・普通にできるのですが・・・
アナログ情報を読み込んで、データをシリアルで送信すると・・・
値がおかしい・・・あきらかに、他の3個とは違う値が表示されます。
FusesやLockBitなど、間違っていないか・・・何度も確認しましたが・・・正しく動作する3個との違いが発見できません。
これは、単にAVRの固体の問題であり、ハズレだった・・・と諦めてしまって良いのか・・・迷っています。
いやっ、値段の問題ではなく、意地の問題!
なんとなく判ったことは・・・
転送するときに、1バイトの最上位ビットが立ってしまっているようです。
ですので、 data & 0x7F とすると、正しい値になることがわかりました。
でも、何でビットが立ってしまうのかは判りません・・・(涙)
やっぱりハズレなの・・・