PIC16F886のタイマー割り込みで1秒を作る。
タイマー割り込みの仕組みはタイマーに利用されるクロック出力一発で該当のタイマーカウントレジスタ(?)が加算されていき、少なくともPIC16F886では、そのカウントが繰り上がって0に戻った時に割り込みが発生する。という仕組みです。カウントを行う元となる周波数に加え、プリスケーラと呼ばれる分周比設定により、クロック何発でカウントするかといった組み合わせでカウントの仕方を選ぶ事ができます。
そこで、この元周波数と分周比をうまくすれば、精度の良い振動子を利用することで綺麗な1秒の割り込みを発生させる事が出来、これが出来る事で時計を製作する事ができるのです。が、元となる周波数が都合の良い周波数でないと、1秒を作るための計算がややこしくなるので、時計向けの周波数で、かつ、精度の良い物を選定する必要があります。
という事情で、一つ前の記事ではまた秋葉行ってパーツ買わないとなぁ、と言っていたのですが、利用を断念したRTCモジュールから1秒を作り出すのに便利な32.768kHzという周波数を出力できるらしいことを思い出したので、試しにやってみました。
LED8個を順番に点灯させただけなので、厳密に何秒で何秒のズレが発生するか、とかはやってませんが、見た感じほぼ一秒だったのでコレでいけそうです。とりあえずこれでコーディングと出力処理をハードの面からも色々想像してみてデザインしていこうと思います。