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


Previous: 8.2.1.7. RTC割込みの有効化

Up: 8.2.1. RTCの初期化手順

Next: 8.2.2. RTCの利用手順


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

8.2.1.8. カウント速度の設定

 次にRTCのカウントの速度を設定します。時計として使用する際には、1カウントが1秒になるように設定すると使いやすいでしょう。RTCのクロック源であるLSE32.768KHzですから、32768で分周すると、1カウント1秒になります。この分周比を設定するための命令が、RTC_SetPrescaler関数(ライブラリ 14?9)です。

ライブラリ 14?9 RTC_SetPrescaler関数

関数プロトタイプ

void RTC_SetPrescaler(uint32_t PrescalerValue )

動作

RTCのプリスケーラ値を設定します。

引数

PrescalerValue

プリスケーラの値。

戻り値

無し

 RTCがカウントされるのはプリスケーラが設定値になった時ではなく、設定値をオーバーフローするときです。プリスケーラには、設定したい分周比から1を引いた数を設定します。以下のように32767と設定すると、32768回目のクロックでプリスケーラがオーバーフローするので、この時点でRTCがカウントします。

 ここでも忘れずにRTC_WaitForLastTask関数を実行しておきます。

/* Set RTC prescaler: set RTC period to 1sec */

RTC_SetPrescaler(32767); /* RTC period = RTCCLK/RTC_PR = (32.768 KHz)/(32767+1) */

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

RTC_WaitForLastTask();

 長かったですが、ここまででRTCの初期化処理が完了です。この時点でRTCはすでにカウントを開始しています。


Previous: 8.2.1.7. RTC割込みの有効化

Up: 8.2.1. RTCの初期化手順

Next: 8.2.2. RTCの利用手順


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