#每日话题#
RTC闹钟大家可能比较熟悉,但是说到亚秒闹钟,大家可能就比较陌生了,今天给大家讲一下N32G03x亚秒闹钟时间的设置(其他系列也差不多)
首先我们要知道亚秒闹钟的时钟是什么?
这里我们又不得不提到RTC的时钟源,RTC的时钟源一共有三种:
然后再通过两个预分频器:
平时我们所用的日历时钟就是利用给DIVA和DIVS赋值,然后配成RTCCLK/((DIVA+1)*(DIVS+1)) = 1Hz
如果RTC所选择的时钟源是LSE,即RTCCLK = 32768Hz,此时配置DIVA = 7F,DIVS = FF,此时配置成的便是1Hz时钟
言归正传,回归我们今天的主题,RTC亚秒闹钟的设置,这里我们默认配置RTC时钟为1Hz即DIVA = 7F,DIVS = FF
这里我们要知道亚秒的时钟并不是RTC时钟,亚秒时钟 = RTCCLK/(DIVA+1) = 1/256。
然后就是重点了
RTC_ConfigAlarmSubSecond(RTC_B_ALARM, 256, RTC_SUBS_MASK_SS14_7);
我们通过这个库函数来设定亚秒值和比较位,这里我们设置亚秒值为256,比较位设置0-6位,即每个RTCCLK可以匹配两次,即500ms触发一次闹钟
这里我们也可以这样配置
RTC_ConfigAlarmSubSecond(RTC_B_ALARM, 256, RTC_SUBS_MASK_SS14_6);
即匹配0-5位,此时每个RTCCLK就可以匹配4次,即250ms匹配一次
这里我们也要注意亚秒值的设置不能大于DIVS
|