= ATmega328P用Arduino 0012統合開発環境 = [http://www.switch-science.com/products/detail.php?product_id=113 Arduino大容量化チップ]って、ATmega328Pに[http://www.ladyada.net/library/arduino/bootloader.html Ladyadaさんのブートローダ]を書き込んだ物です。 「ATmega328Pって、ATmega168とピンコンパチ」だって聞いたことがある人なら、「ArduinoのATmega168と差し替えれば動く」って思うでしょう。 ところが、実際はそうではないのです。 Arduinoの統合開発環境(IDE)での対応が必要です。なぜならば、普通はATmega328Pっていうチップも知らないし、容量が大きくなったことも知りません。「じゃ、ちゃちゃっとパラメータのファイルを書き換えれば…」とか、ちょっと知ってる方なら「boards.txtファイルあたりを…」なんて思うでしょう。ところが、やっぱりそう簡単な話ではありません。 実は、ATmega328Pって、ATmega168とはちょっと遠い間柄なのです。兄弟というよりは、いとこっていう感じ。 何気なく付いている「P」が重要なのです。あまり話題にならないけれど、ATmega168Pっていうチップもあります。 どっちかといえば、こっちに近い。「P」は、「picoPower」テクノロジーのPだそうです。 このテクノロジーの詳しいことは知らなくていいです。 重要なのは、ファームウェアのプログラミングを行うのに重要なヘッダファイルで定義されているマクロが、Pの付いていないシリーズとかなり違うってことです。 ん…。いきなりややこしい話になった感じがします。 実は、Arduinoの統合開発環境ってば、「スケッチを書き込む」ボタンをクリックするたびに、裏側でこっそり「C言語」のコンパイルをやっているのです。 そのため、マクロが違うとコンパイルできなくて、エラーになる。 ん…。これでもよくわからないですよね。 いずれにしても、統合開発環境に含まれている「C言語」のプログラムもあちこち修正してやらなきゃいけないのです。 [http://spiffie.org/know/arduino_328/ Arduino 0011について対応してくれた人]がいましたが、エラーになる部分がありました。 それに、Arduino 0012には誰も対応してくれていません。 0012使いたいですよね。たとえば、イーサネットシールド用のライブラリは、0011には入っていません。