後閑先生の本にはすごくお世話になっている。が、残念ながらPIC24F自身が今(2009年夏)現在では、いろいろなところ(開発環境、チップそのもの)バグがあったり、サポートしていないことが多すぎる。例えば、I2CのインターフェースのPRIの方は、ある勝手な前提があって、 LATBbits.LATB5 = 0;
Nop();
I2C1BRG = 0x9E;
I2C1CON = 0x8000; //Enable While PB5 is low
I2C1ADD=0;
I2C1MSK=0;
と最初に言ってあげないと一般的なI2Cチップ(メモリとか)は動かない(ところがセカンダリの方はそうしないでも動く)。スリープモードに入るときの asm("PWRSAV #SLEEP_MODE")のSLEEP_MODEのラベルがPIC24Fでは開発環境にデフォルトでは定義されてない(ちなみに SLEEP_MODEが0でIDLE_MODEが1)といった実際に使う上で、ハマルポイントがかなり抜けていると感じました。またUARTの二つ目のチャンネルは、よっぽど八苦(ハック)しないと使えない。このあたりを「難しい」なら難しいと書いてくれるか、または本書の中でサポートしてほしかった。先生のPIC16シリーズのやつはちなみに大好きです!