ArduinoライブラリのMCUタイプ依存性

2009/8/14追記:
以下に示す問題は最新のIDE-0017で改善されました

Arduinoライブラリの中に、Duemilanove (ATMega168/328)からMega (ATMega1280)などMCUのタイプを変えた場合に動かなくなるものがあります。以下のライブラリが該当します。

原因は分かっていません。Timer2やTWI関連のレジスタマッピングが上記のMCUで異なるわけではありませんし。MsTimer2.cppでは、以下のように、MCUタイプ毎のコードがありますが、168/328/1280は同じif definedブロック内です。

void MsTimer2::start() {
    count = 0;
    overflowing = 0;
#if defined (__AVR_ATmega168__) || defined (__AVR_ATmega48__) || defined (__AVR_ATmega88__) || defined (__AVR_ATmega328P__) || (__AVR_ATmega1280__) →同じif def内
    TCNT2 = tcnt2;
    TIMSK2 |= (1<<TOIE2);
#elif defined (__AVR_ATmega128__)
    TCNT2 = tcnt2;
    TIMSK |= (1<<TOIE2);
#elif defined (__AVR_ATmega8__)
    TCNT2 = tcnt2;
    TIM

(1/2) 次»

Arduino
2009/06/18




コメント(0)|コメントを書く

カテゴリー一覧
最近のコメント

このブログを友達に教える

コミュニティ | 有名人・芸能人ブログ | ケータイ占い | ケータイ小説 | 掲示板


画面TOP↑


powered by cocolog