EFM32之RTC

注:笔者用的MCU型号是EFM32TG210F32

RTC模块的时钟来自LFACLK,即低速时钟树中的A分支。频率由LFACLK和分频值决定。

EFM32之RTC_第1张图片

值得注意的是,如果要使用低速设备,一定要记得开启LE

EFM32之RTC_第2张图片

看寄存器中的描述,似乎意味着,只要想用低功耗设备,一定要打开这个接口。

假定LFACK的频率是32.768kHz,那么不同分频系数下,RTC一个计数值的时间如下

EFM32之RTC_第3张图片

你也许会想,如果RTC用的是LFACK时钟,那么当我进入EM3模式的时候,高速低速时钟树都关了,RTC还怎么工作。手册里这么写,如果你用超低速时钟做RTC的时钟源,还是可以在EM3模式下使用的。

RTC模块内部有一个24位的计数器,从0开始向上计数,一旦你使能RTC就会马上从0开始计数,当你失能RTC的时候,计数器的值自动清零。这个计数器的值是随时可读可写的。计数器计数到满之后,会自动又从0开始计数。RTC除了这个计数器之外,还有两个比较寄存器COMP0,COMP1。干啥用的呢。当你在COMP0或者COMP1中写入了一个值,RTC计数器计数到跟比较寄存器其中某一个一样的时候就会触发中断。另外还可以拿COMP0作为计数器的TOP,也就是说,不让计数器计到满才从头开始,而是计数到我们指定的一个数之后从头开始,这个数存放在COMP0中。

你可能感兴趣的:(MCU)