ブート時に時計の日時を自動的に設定するようにしてみました。前の記事で実験したPPP接続とSNTPによる時刻取得をブート時に連続的に実行するようにしています。
PPP接続中はLCD画面の左上にアイコンで状態表示する機能も付け加えてあります。アイコンの点滅にはRTCからの1Hz信号を利用しています。ダイアルアップによるPPP接続中と、接続できた状態とでアイコン表示が変化します。時刻取得ができるとRTCが設定され、画面右上の時刻表示も変化します。その後、PPP接続が切断されて待ち受け画面に戻るので、取得した日付と時刻が表示されます。
実際にはSNTPでの時刻取得にはさほど時間がかからないので、PPP接続されている時間もごくわずかです。PPP接続アイコンの変化もわかりにくいくらいの短時間なので、このデモではわざとSNTPでの時刻取得後1秒待ってからPPP接続を切断するようにしてあります。
時刻設定終了後に117を呼んで、設定された時刻の確認をしてみました。RTCでは秒単位でしか時刻を管理していませんので、若干のずれが生じます。秒が変わるタイミングでRTCを設定するようにスケジューリングをすれば、より正確な時刻設定も可能ですが、そこまでの処理はやっていません。まぁ、こんなもんでわたしは満足です。
PPP接続中はLCD画面の左上にアイコンで状態表示する機能も付け加えてあります。アイコンの点滅にはRTCからの1Hz信号を利用しています。ダイアルアップによるPPP接続中と、接続できた状態とでアイコン表示が変化します。時刻取得ができるとRTCが設定され、画面右上の時刻表示も変化します。その後、PPP接続が切断されて待ち受け画面に戻るので、取得した日付と時刻が表示されます。
実際にはSNTPでの時刻取得にはさほど時間がかからないので、PPP接続されている時間もごくわずかです。PPP接続アイコンの変化もわかりにくいくらいの短時間なので、このデモではわざとSNTPでの時刻取得後1秒待ってからPPP接続を切断するようにしてあります。
時刻設定終了後に117を呼んで、設定された時刻の確認をしてみました。RTCでは秒単位でしか時刻を管理していませんので、若干のずれが生じます。秒が変わるタイミングでRTCを設定するようにスケジューリングをすれば、より正確な時刻設定も可能ですが、そこまでの処理はやっていません。まぁ、こんなもんでわたしは満足です。