マイコン入門spacer ad
トップページに戻る(マイコン徹底入門:STM32で始めるARM/Cortex-M3組み込み開発)
「マイコン徹底入門」とは? |  「マイコン徹底入門」を読む |  ダウンロード |  掲示板 |  筆者の自己紹介


Previous: 8.2.2. RTCの利用手順

Up: 8.2.2. RTCの利用手順

Next: 8.2.2.2. 割込みハンドラの作成


マイコン徹底入門:周辺回路編:STM32のペリフェラルを活用: 8. リアルタイムクロック: 8.2. リアルタイムクロックの利用: 8.2.2. RTCの利用手順:

8.2.2.1. RTCへの時刻設定

 それではRTCに時間を設定してみましょう。実時間は、年・月・日・時・分・秒に分かれていますが、RTCに内蔵されているカウンタは一つだけです。そこでどうやって時間を表現するかが問題になります。ここでは24時間まで数えられればよいこととして、RTCにその日の開始から何秒経ったかを記録させることにします。カウンタが100なら午前0140秒、1000なら01640秒、10000なら午前24640秒です。ちなみに

年月日までカウントする場合にはUNIXタイムがよく使用されます。UNIXタイムというのは197011日午前000秒からの経過秒数で日時を表す方法です。ただすでに21世紀になっていますので、新規開発ではきりのよいところで200011日を基準にするということでもよいかと思います。

 サンプルプログラムではTime_Regulate関数で時刻を取得してその時刻に対応するカウント数を作っています。RTCカウンタに特定の値を設定するための関数がRTC_SetCounter関数(ライブラリ 14?10)です。

ライブラリ 14?10 RTC_SetCounter関数

関数プロトタイプ

void RTC_SetCounter(uint32_t CounterValue )

動作

RTCのカウンタ値を設定します。

引数

CounterValue

カウンタの値。

戻り値

無し

 RTCにすでに時間が設定されているのであれば、再びユーザに時間を設定させるというのは余計な手間を掛けるだけになります。そこでサンプルプログラムでは以前にプログラムが実行されたことがある場合には、条件分岐により、時間設定のルーチンを飛ばしていますた。ただリセットされると割込設定はリセットされて無効になっているので、再度有効にしておきます。


Previous: 8.2.2. RTCの利用手順

Up: 8.2.2. RTCの利用手順

Next: 8.2.2.2. 割込みハンドラの作成


このページはITと知的財産の法律情報「法務ネット」の管理人が制作・運営しています。
_Toc266801166