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


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

Up: 8.2.2. RTCの利用手順

Next: 8.3. RTCフラグの取得


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

8.2.2.3. RTCのカウンタ値の取得

 このプログラムでは1日ごとにカウンタをリセットすることにしましたので、1日分カウントされたかどうかを確認する必要があります。カウンタ値の確認に使用するのがRTC_GetCounter関数(ライブラリ 14?13)です。

ライブラリ 14?13 RTC_GetCounter関数

関数プロトタイプ

uint32_t RTC_GetCounter(void )

動作

RTCのカウンタ値を取得します。

引数

無し

戻り値

カウンタ値

 割り込みハンドラ中では、以下のように、カウンタ値が1日が満了したことを判定するためにRTC_GetCounter関数を使用しています。

if (RTC_GetCounter() == 0x0001517F)

? {

??? RTC_SetCounter(0x0);

??? /* Wait until last write operation on RTC registers has finished */

??? RTC_WaitForLastTask();

? }

 また時刻表示ルーチンでは以下のようにRTC_GetCounter関数を使用して現在のカウンタ値を取得し、現在時刻として表示させています。

/* Display current time */

cprintf(“Time now is “);

Time_Display(RTC_GetCounter());

cprintf(“? RTC counter is “);

Print_Decimal(RTC_GetCounter());

cprintf(“\r\n”);

 ここまでのところで、RTCを使用したプログラムの作成に必要な機能一式がそろいました。VDDの供給を停止してVBATのみでRTCを動作させているときの電流値を計測したところ、1.67uAでした。これならボタン電池だけで何年も時刻を刻めそうです。


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

Up: 8.2.2. RTCの利用手順

Next: 8.3. RTCフラグの取得


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