スーの道具箱/
Arduino/0022
の編集
[
ホーム
|
一覧
|
単語検索
|
最終更新
|
ヘルプ
]
Top
>
Arduino
> 0022
*Arduino 0022 メモ [#v79adf9e] http://arduino.cc/en/Main/Software **公式リリースノート [#ib8992cc] http://arduino.cc/en/Main/ReleaseNotes **主観的メモ(0021→0022) [#mfde8b04] 大きいのは、公式ライブラリにSDカードが追加されたこと。~ 文字操作関数の充実。~ ***多シリーズCPU対応? [#yc4b2dfd] 0021ではATmega2560対応にあたり、~ #code(c){{ #if defined(__AVR_ATmega1280__) || defined(__AVR_ATmega2560__) }} のようなCPU名ベースでのブランチを行っていたが、0022からは、~ #code(c){{ #if defined(EICRA) && defined(EICRB) && defined(EIMSK) }} のようなレジスタ名ベースでのブランチに変わった。~ 例えばUART依存の機能はUART用のレジスタの有無でブランチするようになったので、CPU名ではなく機能に依存するようになっている。~ (ハードウェアに依存する)ライブラリの作者さんも、CPU名ベースからレジスタ名ベースでブランチするようにしたほうが一貫性が保てる。~ ***Serial [#b512e021] ボーレート計算時に誤差が小さくなるように修正。~ 受信割り込み、available()とread()の最適化。~ ※3倍ぐらいは速くなっているはず。遅いのを想定して作っているスケッチは要注意。~ RAMサイズが少ない(512byte以下)CPUの場合、受信バッファサイズを128から32バイトに変更。 ソースレベルでは、~ #code(c){{ #if (RAMEND < 1000) #define RX_BUFFER_SIZE 32 #else #define RX_BUFFER_SIZE 128 #endif }} ATmega48やATmega8515に対応させる予定?~ ***String.toInt()メソッド [#v1247341] 文字列を数値にするメソッドの追加。~ atol()のラッパ。~ ***WCharacter.h [#y65a2e85] 文字操作(インライン)関数追加。~ #code(c){{ 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 [#ra0d5d90] #code(c){{ virtual int peek() = 0; }} ***pulseIn() [#we9655e5] パルス停止待ち中(パルス幅計測中)にも、タイムアウトを処理を実行するようになった。~ ***tone() [#ea4a7860] 問題修正とリファクタリング。~ 変更箇所多すぎて詳細は追ってません。ごめんなさい。~ ***wiring_analog.c [#q3f65f3e] リファクタリング。~ 動作には変更なし。~ ***wiring_digital.c [#f1d9b324] リファクタリング。~ 動作には変更なし。~ ***WString.cpp [#r46f9222] リファクタリング。~ 動作には変更なし。~ ***ArduinoTestSuiteライブラリ [#y52afbd4] ArduinoTestSuiteライブラリ追加~ ソフトウェアのテストを行うライブラリ。~ http://code.google.com/p/arduino/wiki/ArduinoTestSuite ***SPI.setClockDivider()メソッド [#f8bcba59] クロック計算のBugFix。~ ***SDカードライブラリ [#gb50f38f] SDカード(SPIモード)ライブラリの追加。~ 読み込みはEthernetやSerialライブラリと同様に1バイト単位。~ ***Stepperライブラリ [#vd04ae6e] サンプル追加。~ **主観的メモ(0018→0021) [#r573f1eb] [[Arduino/0021]] /// #br ---- #comment #br
タイムスタンプを変更しない
*Arduino 0022 メモ [#v79adf9e] http://arduino.cc/en/Main/Software **公式リリースノート [#ib8992cc] http://arduino.cc/en/Main/ReleaseNotes **主観的メモ(0021→0022) [#mfde8b04] 大きいのは、公式ライブラリにSDカードが追加されたこと。~ 文字操作関数の充実。~ ***多シリーズCPU対応? [#yc4b2dfd] 0021ではATmega2560対応にあたり、~ #code(c){{ #if defined(__AVR_ATmega1280__) || defined(__AVR_ATmega2560__) }} のようなCPU名ベースでのブランチを行っていたが、0022からは、~ #code(c){{ #if defined(EICRA) && defined(EICRB) && defined(EIMSK) }} のようなレジスタ名ベースでのブランチに変わった。~ 例えばUART依存の機能はUART用のレジスタの有無でブランチするようになったので、CPU名ではなく機能に依存するようになっている。~ (ハードウェアに依存する)ライブラリの作者さんも、CPU名ベースからレジスタ名ベースでブランチするようにしたほうが一貫性が保てる。~ ***Serial [#b512e021] ボーレート計算時に誤差が小さくなるように修正。~ 受信割り込み、available()とread()の最適化。~ ※3倍ぐらいは速くなっているはず。遅いのを想定して作っているスケッチは要注意。~ RAMサイズが少ない(512byte以下)CPUの場合、受信バッファサイズを128から32バイトに変更。 ソースレベルでは、~ #code(c){{ #if (RAMEND < 1000) #define RX_BUFFER_SIZE 32 #else #define RX_BUFFER_SIZE 128 #endif }} ATmega48やATmega8515に対応させる予定?~ ***String.toInt()メソッド [#v1247341] 文字列を数値にするメソッドの追加。~ atol()のラッパ。~ ***WCharacter.h [#y65a2e85] 文字操作(インライン)関数追加。~ #code(c){{ 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 [#ra0d5d90] #code(c){{ virtual int peek() = 0; }} ***pulseIn() [#we9655e5] パルス停止待ち中(パルス幅計測中)にも、タイムアウトを処理を実行するようになった。~ ***tone() [#ea4a7860] 問題修正とリファクタリング。~ 変更箇所多すぎて詳細は追ってません。ごめんなさい。~ ***wiring_analog.c [#q3f65f3e] リファクタリング。~ 動作には変更なし。~ ***wiring_digital.c [#f1d9b324] リファクタリング。~ 動作には変更なし。~ ***WString.cpp [#r46f9222] リファクタリング。~ 動作には変更なし。~ ***ArduinoTestSuiteライブラリ [#y52afbd4] ArduinoTestSuiteライブラリ追加~ ソフトウェアのテストを行うライブラリ。~ http://code.google.com/p/arduino/wiki/ArduinoTestSuite ***SPI.setClockDivider()メソッド [#f8bcba59] クロック計算のBugFix。~ ***SDカードライブラリ [#gb50f38f] SDカード(SPIモード)ライブラリの追加。~ 読み込みはEthernetやSerialライブラリと同様に1バイト単位。~ ***Stepperライブラリ [#vd04ae6e] サンプル追加。~ **主観的メモ(0018→0021) [#r573f1eb] [[Arduino/0021]] /// #br ---- #comment #br
テキスト整形のルールを表示する