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できない。

プログラム例

  • ADで読み込んだ値をシリアルポートに出力する filegyro1.pde
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);
}

基板の図面など


添付ファイル: filegyro1.pde 1837件 [詳細]

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2014-04-19 (土) 20:12:05 (1583d)