しばらく前にAVRlibのテストをしていましたが、その際にPWMが動いていないようだ、ということを書きました。
結局、端子の割り付けの差だったようで、
// set the OC1x port pins to output
// We need to do this so we can see and use the PWM signal
// ** these settings are correct for most processors, but not for all
sbi(DDRD, PD4);
sbi(DDRD, PD5);
の部分を、ATmega88のOC1xの端子配置に合わせて、
// set the OC1x port pins to output
// We need to do this so we can see and use the PWM signal
// ** these settings are correct for most processors, but not for all
sbi(DDRB, PB1);
sbi(DDRB, PB2);
に直してやると、あっけなく動作しました。
(よく見ると、コメントに違うCPUもあるよ、って書いてありますね・・・)
その際にいろいろと調べていたのですが、結局開発環境としてはArduinoへの乗り換えを検討しています。
死蔵しているATmega88がいっぱいあるのでちょっともったいないのですが、趣味の世界では他の人が築き上げたものを使わない手はありません。貴重な時間は最終的なアプリケーションに費やした方が楽しいですし。(それがArduinoがウケている理由だと思うのです)
で、調べてみると、Arduinoの世界では、ATmega168とかだと19200bpsでのシリアル通信が使われるようなので、XBeeの通信速度も19200bpsに変更しました。