前回は、SEEKで停止状態からボタン操作で、周波数をUP/DOWNできる機能が加わりましたが、理想を言えばやはり、ロータリーエンコーダーで操作したいところです。

色々なWEBを参考にやっていますが、なかなかうまくいきませんね~。
(ホントに、まだやってるの??と思いながら、あきらめきれずやってます。)

色々やっているうち、操作はできるようになりましたが、LCDがすぐに固まってしまいます。
少しは進歩していますが、簡単ではありません。

masahiroさんサンプルの一部ボリュームの部分をロータリーエンコーダーに変更。

ロータリーエンコーダーのプログラムは、こんなコードを入れています。

ISR(PCINT0_vect)
{
_delay_ms(2);
PCIFR = _BV(PCIF0);

if (bit_is_clear(PINB, PB0)) // A相のスイッチがオンの時
{
if (bit_is_clear(PINB, PB1))// B相のスイッチがオンの時
{
ffreq = ffreq + 10 ;
radio.setFMFreq(ffreq);
} else {
// // B相のスイッチがオフの時
ffreq = ffreq - 10 ;
radio.setFMFreq(ffreq);
}
}
}

今回は、http://www.letstryit.net/2011/06/avr-rotaryencoder.htmlの記事を参考に
させていただきました。(ほぼそのままです・・すいません 汗!。)


今回の実験では、FMの周波数だけ変更できるようにしています。