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) 次»
コメント(0)|コメントを書く
カテゴリー一覧
最近のコメント
このブログを友達に教える