AVRtiny13Aでつくるシリーズ3 TCXOを使って時計を作る
- 2016/03/31 12:04
- カテゴリー:make:
さて,今回はCPUのクロックに外部のTCXOで作った10MHzを突っ込み,これをもとに時計を作るという話です。少し前に,わざわざSi5351で32.678kHzを生成して時計を作ったという話を書きましたが,そんなことをしなくてもTCXOの時計を作る事は出来るんじゃないかという発想を,実際にやってみたという話です。
そのTCXOの周波数ですが,別に10MHzでなくてもいいんじゃないのと思われると思いますが,そうは問屋が卸しません。
なにせtiny13Aです,最終的に1秒を作る事の出来る外部クロックは,限られます。ここでは手持ちの関係もあり,10MHzのTCXOを使う事にします。
原理は簡単で,以前の32.768kHzの時計と全く同じです。ただ,CPUクロックを使いますので,プリスケーラを通せます。
まず10MHzをプリスケーラで1/64します。そうすると156250Hzになるのですが,これをカウンタで数えます。一定の数になったら割り込みを発生させますが,割り込みの発生が整数回数でなければ,1秒を作れません。
そこで,数える数を250とします。すると1秒間に625回の割り込みが発生します。割り込み処理で変数をインクリメントし,625になったら1秒です。あとは普通に作ればいいだけです。
変数はint型になりますし,16ビットの加算になるのでコードも大きくなりますが,処理時間としてはこのくらいの内容なら,まあ大丈夫でしょう。
LCDは,引き続きデジットの8桁14セグのものです。