Top > Arduino > 0022

Arduino 0022 メモ *

http://arduino.cc/en/Main/Software

公式リリースノート *

http://arduino.cc/en/Main/ReleaseNotes

主観的メモ(0021→0022) *

大きいのは、公式ライブラリにSDカードが追加されたこと。
文字操作関数の充実。

多シリーズCPU対応? *

0021ではATmega2560対応にあたり、

#if defined(__AVR_ATmega1280__) || defined(__AVR_ATmega2560__)

のようなCPU名ベースでのブランチを行っていたが、0022からは、

#if defined(EICRA) && defined(EICRB) && defined(EIMSK)

のようなレジスタ名ベースでのブランチに変わった。
例えばUART依存の機能はUART用のレジスタの有無でブランチするようになったので、CPU名ではなく機能に依存するようになっている。
(ハードウェアに依存する)ライブラリの作者さんも、CPU名ベースからレジスタ名ベースでブランチするようにしたほうが一貫性が保てる。

Serial *

ボーレート計算時に誤差が小さくなるように修正。

受信割り込み、available()とread()の最適化。
※3倍ぐらいは速くなっているはず。遅いのを想定して作っているスケッチは要注意。

RAMサイズが少ない(512byte以下)CPUの場合、受信バッファサイズを128から32バイトに変更。 ソースレベルでは、

#if (RAMEND < 1000)
  #define RX_BUFFER_SIZE 32
#else
  #define RX_BUFFER_SIZE 128
#endif

ATmega48やATmega8515に対応させる予定?

String.toInt()メソッド *

文字列を数値にするメソッドの追加。
atol()のラッパ。

WCharacter.h *

文字操作(インライン)関数追加。

boolean isAlphaNumeric(int c); // isalnum(c)
boolean isAlpha(int c); // isalpha(c)
boolean isAscii(int c); // isascii(c)
boolean isWhitespace(int c); // isblank(c)
boolean isControl(int c); // iscntrl(c)
boolean isDigit(int c); // isdigit(c)
boolean isGraph(int c); // isgraph(c)
boolean isLowerCase(int c); // islower(c)
boolean isPrintable(int c); // isprint(c)
boolean isPunct(int c); // ispunct(c)
boolean isSpace(int c); // isspace(c)
boolean isUpperCase(int c); // isupper(c)
boolean isHexadecimalDigit(int c); // isxdigit(c)
int toAscii(int c); // toascii(c)
int toLowerCase(int c); // tolower(c)
int toUpperCase(int c); // toupper(c)

WCharacter.hはWProgram.hでincludeしているため、スケッチではinclude不要。

Stream.h *

  virtual int peek() = 0;

pulseIn() *

パルス停止待ち中(パルス幅計測中)にも、タイムアウトを処理を実行するようになった。

tone() *

問題修正とリファクタリング。
変更箇所多すぎて詳細は追ってません。ごめんなさい。

wiring_analog.c *

リファクタリング。
動作には変更なし。

wiring_digital.c *

リファクタリング。
動作には変更なし。

WString.cpp *

リファクタリング。
動作には変更なし。

ArduinoTestSuiteライブラリ *

ArduinoTestSuiteライブラリ追加
ソフトウェアのテストを行うライブラリ。
http://code.google.com/p/arduino/wiki/ArduinoTestSuite

SPI.setClockDivider()メソッド *

クロック計算のBugFix。

SDカードライブラリ *

SDカード(SPIモード)ライブラリの追加。
読み込みはEthernetやSerialライブラリと同様に1バイト単位。

Stepperライブラリ *

サンプル追加。

主観的メモ(0018→0021) *

Arduino/0021