Kick4Wiki
アーデュイーノ †
容量とか †
- ATMega168: ROM16K, RAM1K, EEPROM 512byte
- ATMega328: ROM32K, RAM2K, EEPROM 1K
- ATMega1280: ROM128K, RAM8K, EEPROM 4K
Arduinoの前処理 †
Arduinoのプログラムはc++で、WinAvr (avr-gcc + Avr-libc)なわけですが、
コンパイル前に前処理プログラムが走っているため、
初心者には取っ付き易く、経験者にはわかりにくくなっています。
ホームページのBuildProcessで解説がありますので、
ここから情報を抜書きして置きます。
情報源:Arduino - BuildProcess
- Multi-file sketches: 複数のソースファイル
- sketchは複数のファイル(タブ)をもつことができる。
- 4種類の拡張子のファイルが許される
- .c Cのソース、別個にコンパイル
- .cpp C++のソース、別個にコンパイル
- .h ヘッダファイル。他のソースから#includeされる。コンパイルされない。
- (拡張子無し) .pdeファイルとくっつけて、一緒にコンパイルされる
- main sketch fileへの変換
- 先頭に #include "WProgram.h"を追加
- ファイルの中の関数定義を検索し、prototype宣言を追加。
- 追加される場所は、コメント、プリプロセッサ命令以外の要素が現れる直前
- このため、関数の引数に定義された型を使用する場合、別のヘッダファイルで定義し、#includeする必要がある。
- 関数定義の検索は完全ではなく、prototype宣言を生成できない場合もあるので注意
- ファイルの最後に、現在のターゲット(のArduinoボード)のmain.cxxファイルが追加される。
- The include path includes
- the sketch's directory,
- the target directory (<ARDUINO>/hardware/core/<CORE>/)
- avr include directory (<ARDUINO>/hardware/tools/avr/avr/include/)
- any library directories (in <ARDUINO>/hardware/libraries/) which contain a header file which is included by the main sketch file.
- つまり、ライブラリのヘッダファイルは .pdeファイルからincludeされないと、他の .cppファイルからは、includeできない。
プログラム例 †
ledPin = 13;
void setup(){
pinMode(ledPin, OUTPUT);
Serial.begin(9600);
}
void loop(){
int v1,v2;
digitalWrite(ledPin, HIGH);
v1 = analogRead(0);
Serial.print(v1);
Serial.print(" ");
v2 = analogRead(1);
Serial.println(v2);
digitalWrite(ledPin, LOW);
delay(5);
}
基板の図面など †