CPU実験室

誰も見向きもしない古いCPUをいじって動かしてみようというプロジェクトです

時計機能組込み

LCDに数字表示が出るようになったので時計としての機能を入れてみます
 
RTCを積んでいればデータを読み取るだけですが、ここでは自前で時刻カウントを行います。
といっても標準ライブラリに時間関係の処理関数が含まれているので、これを使えば簡単です。
 
まずtime_t型の変数を用意して、これをタイマー1の割込みでインクリメントします。
 
イメージ 1
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
タイマー1は32.768kHzの水晶からのクロックで0x8000カウントでタイムアウトするようにしているので
ちょうど1秒でカウントアップされることになります。
これをlocaltime関数でtm構造体に変換すれば、LCDへ容易に表示できます
 
イメージ 2
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
逆に時刻セットのときはmktime関数でtm構造体をtime_t型変数に変換してやればいいわけです。
 
ということでさっそく起動。まずは24時間でどの程度誤差がでるかです。
 
イメージ 3