2009-08-21 STR8132その7 - RTC
一日1デバイス。今日はRTC。
STR8100/9100 の RTC は電池も付けられない
年や月レジスタは存在しない。日レジスタが16bit分あるので65536日=180年分カウントできるので困らない。
何のために存在するかというと、おそらくSuspend/Resumeのためなんだろう。unix的にはどうでもいいデバイス度90%くらい。 でもまぁSoCだし、こんなものかと思ってチンタラとデバドラを書いてたのだが、
「秒分時日の設定もできない」
ことがわかった。おいおい。
で、どうするかというと、32bitのスクラッチ的なレジスタ(RTC_RECORDレジスタ)があって、ここに好きな値を書き込んでおくことができる。
好きな値とは、現在の実時刻とRTCの示す時刻との差分である。
読み出す時は、RTCの「秒+分*60+時*3600+日*86400」に、上で書き込んだ値を差分として(プログラムで)足して解釈する。
設定する時は、RTCの「秒+分*60+時*3600+日*86400」と現在時刻との差分をRTC_RECORDレジスタに保存しておくのだ。
なんという
なんという
なんという…
EOF