|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
AT32 系列的单片机里面有两种RTC,一种是RTC另外一种是ERTC,两种RTC的分频值配置略有不同
4 H8 S s( B% G3 H5 WRTC:# ^$ L3 u( a( D' W4 @4 D
![]() 9 o0 F. {# [, z3 q$ a
上图是从官方参考手册上截取的RTC内部框图,从图中我们可以看到,RTCCLK经过20位分频器RTC_DIV分频后得到日历的1Hz时钟,所以我们只需要配置RTC_DIV就行了,分频公式为RTC_CLK/(RTC_DIV+1) Y* E; p& y) T' H9 f5 K
例如当外部晶振为32768Hz,那么配置RTC_DIV=32767就能得到1Hz时钟,32768/(32767+1) = 1Hz5 u# X; {4 v @8 y. |
程序示例:7 f. z0 Y @( h$ h) N3 P' i
RTC_SetDIV(32767);
0 Q8 v' \/ ~ A- D/ g% s
M g. a8 g0 S, }" w+ dERTC: 5 q( c! y$ O1 r* k+ b+ f4 a l
上图是从官方参考手册上截取的ERTC内部框图,从图中我们可以看到,ERTCCLK先经过7位分频器,再经过15位分频器,得到后得到日历的1Hz时钟,所以我们只需要配置7位分频器,以及15位分频器,分频公式为ERTC_CLK/((7位分频器+1)(15位分频器+1))
0 J, v' S" J% P4 X# v例如当外部晶振为32768Hz,那么配置7位分频器=127,15位分频器=255,就能得到1Hz时钟,32768/(127+1)(255+1) = 1Hz, s/ I/ D* l K+ C% v* }' p* A$ Z
程序示例:
0 ~2 }- V6 a8 p( f- F& A7 h Y ERTC_InitStructure.ERTC_AsynchPrediv = 127;
0 i/ ~8 X5 f1 M, X, e0 @, k% w2 f ERTC_InitStructure.ERTC_SynchPrediv = 255;! t2 U% _$ S- K9 ~: r1 w- K
ERTC_InitStructure.ERTC_HouRFormat = ERTC_HourFormat_24;: f9 r# X. Q; [& b6 b
ERTC_Init(&ERTC_InitStructure);6 P$ D) q" _, V: }5 t* K
4 r ]8 _& I! u3 H- f% N! K
# N+ R, m$ Q8 E! a8 Y$ H0 r. W+ g" i9 c7 {' Q/ I2 p0 t% `
* M/ K9 y# H' y0 J! I$ R, O7 v' Y
|
|