|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
AT32 系列的单片机里面有两种RTC,一种是RTC另外一种是ERTC,两种RTC的分频值配置略有不同
, `9 C* p4 ~# {; k6 z }$ IRTC:
' Z' P, F- N+ u9 y+ F: R- r![]() , k3 }' M/ S# R2 Q4 Z! J. S& Q( N
上图是从官方参考手册上截取的RTC内部框图,从图中我们可以看到,RTCCLK经过20位分频器RTC_DIV分频后得到日历的1Hz时钟,所以我们只需要配置RTC_DIV就行了,分频公式为RTC_CLK/(RTC_DIV+1). v; ^6 m# X2 l& ^. o2 d
例如当外部晶振为32768Hz,那么配置RTC_DIV=32767就能得到1Hz时钟,32768/(32767+1) = 1Hz7 Z' { F# h5 ^5 p4 B i) k# d) ?6 Z
程序示例:
' \, d5 `- N( y3 n+ x6 q( oRTC_SetDIV(32767);
/ \# P) ?, o( p( i' d4 c% k) b, b P u: R! ]) S" i
ERTC:
+ U9 @3 B7 _! D6 t上图是从官方参考手册上截取的ERTC内部框图,从图中我们可以看到,ERTCCLK先经过7位分频器,再经过15位分频器,得到后得到日历的1Hz时钟,所以我们只需要配置7位分频器,以及15位分频器,分频公式为ERTC_CLK/((7位分频器+1)(15位分频器+1))8 } z+ l$ Q5 K0 E; J: g
例如当外部晶振为32768Hz,那么配置7位分频器=127,15位分频器=255,就能得到1Hz时钟,32768/(127+1)(255+1) = 1Hz
. u6 V& m+ g6 i; h3 Y程序示例:6 G! t4 `( a6 e- _
ERTC_InitStructure.ERTC_AsynchPrediv = 127;
) _( i' D; p- |, v+ n ERTC_InitStructure.ERTC_SynchPrediv = 255;9 n1 q6 X) S" l0 z2 S& \+ t" }
ERTC_InitStructure.ERTC_HouRFormat = ERTC_HourFormat_24;
! r6 D$ l2 _5 X* w) u ERTC_Init(&ERTC_InitStructure);4 A2 L- D& @% ^4 r' t5 l
& m" C1 G/ c6 d' `( B, H! w# Z
C5 H* U2 `5 o1 Q
/ p* u; s& l. J+ `% |8 Y* N
9 `# F' @# x$ B% l, H; R- Q |
|