|
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
AT32 系列的单片机里面有两种RTC,一种是RTC另外一种是ERTC,两种RTC的分频值配置略有不同
9 u* B' d2 E5 l* ?; MRTC:6 y" p& A3 t/ T. b: O
, c6 }. R- ?' q/ N上图是从官方参考手册上截取的RTC内部框图,从图中我们可以看到,RTCCLK经过20位分频器RTC_DIV分频后得到日历的1Hz时钟,所以我们只需要配置RTC_DIV就行了,分频公式为RTC_CLK/(RTC_DIV+1)
# f0 L# H! d, q$ v8 X例如当外部晶振为32768Hz,那么配置RTC_DIV=32767就能得到1Hz时钟,32768/(32767+1) = 1Hz7 O3 ~+ N2 h$ ^) a4 a% w: ^
程序示例:
% @7 t9 n6 \8 l- q5 qRTC_SetDIV(32767);# e5 d8 L# k' z: _- E
) t" d6 I) \4 r' x) B5 q, ]ERTC:
' u! ?/ d8 m+ C4 I0 z8 _0 o' k7 N上图是从官方参考手册上截取的ERTC内部框图,从图中我们可以看到,ERTCCLK先经过7位分频器,再经过15位分频器,得到后得到日历的1Hz时钟,所以我们只需要配置7位分频器,以及15位分频器,分频公式为ERTC_CLK/((7位分频器+1)(15位分频器+1)). B) C( A k. ~5 D5 ^) W
例如当外部晶振为32768Hz,那么配置7位分频器=127,15位分频器=255,就能得到1Hz时钟,32768/(127+1)(255+1) = 1Hz: p% h/ v- V- D* T* L8 ~5 o
程序示例:
$ g7 Q# m' k9 g- G$ R ERTC_InitStructure.ERTC_AsynchPrediv = 127;
& e4 u8 r& S+ G. P* d) a1 u' w2 ^ ERTC_InitStructure.ERTC_SynchPrediv = 255;* n. k; W' n% _0 I
ERTC_InitStructure.ERTC_HouRFormat = ERTC_HourFormat_24;
+ S4 _# Z9 v0 |$ A+ Q( Q ERTC_Init(&ERTC_InitStructure);
5 i' X3 s& V" @7 B( K
4 q9 I# C8 |, }4 E
) M7 v, }0 C* ?* n& ?- z0 z9 e; S: j
! x1 m) I) F0 J% ]3 w, @2 n
|
|