学习朱有鹏老师嵌入式课程总结-RTC实时时钟
实时时钟,就是能提供准确时间的一种定时器。
RTC实时时钟一般都拥有在系统掉电后依然继续工作的能力,但是都是配有RTC实时时钟自己的独立电源的,一般是一个纽扣电池。如果在系统掉电后,没有独立电源供电,那RTC也会不工作。RTC时钟需要一个独立的晶振提供为其工作提供工作频率。一般使用32.768khz晶体配合工作。(内部分频2^15,然后就能得到一个1HZ的时钟频率)。
s5pv210的RTC时钟可以用于产生实时时间,还有闹钟功能,和TICKTIME功能,TICKTIME功能主要用在操作系统中(暂时还不是很懂)。同时s5pv210的RTC时钟还有一个引脚作为时钟输出(有相应的寄存器位控制其开关),输出时钟频率为32.768KHz。
说明一下,闹钟功能就是到了预先指定的闹钟时间后,会产生一个中断。
s5pv210为年月日时分秒工作日都各自设置了一个寄存器。各个部分的数值都存储在各自的寄存器中,并且上电后,自动进行计数。s5pv210的这些数据寄存器,是以BCD码的形式存放着时间数据的。所以在写程序读取时间数据时,需要把从寄存器中得到的数据从BCD码转换成十进制。在写程序存放时间时,需要把数据从十进制转换成BCD码再存放。
同样的s5pv210为其RTC闹钟部分也各自设置了一个寄存器。同样是以BCD码的形式存放。读写是也要注意数据之间的转换。
分析一下s5pv210的RTC寄存器
1.INTP寄存器
这是RTC的中断挂起寄存器,其内部有两个工作位,分别记录RTC的闹钟中断挂起和TICK-TIME中断挂起。清除这两个中断挂起位是通过向这两个位写1实现的。
2.RTCCON寄存器
该寄存器是RTC的控制寄存器,其中有一个比较重要的位。RTCEN位,每次读写RTC相关的数据寄存器,都需要先使能该位。同时该寄存器还能控制TICKTIME的使能,以及TICKTIME的时钟分频。
3.TICCNT寄存器
该寄存器是RTC-TICK-TIME的计数寄存器,其内部存放的是TICK-TIME的计数值。
4.RTCALM寄存器
该寄存器是RTC-ALM功能的控制寄存器,控制着闹钟功能的使能,以及控制着闹钟的每个时间的使能功能。也就是说,想要使用闹钟功能,仅仅设置时间和使能闹钟使能位是没用的。还需要单独对每一个时间进行设置。
数据手册中的解释:
如果比较值为year,则必须启用ALMEN和YEAREN。如果比较值为year、month、day、hour、min和sec,则必须启用ALMEN、YEAREN、MONEN、DAYEN、HOUREN、MINEN和SECEN。
5.ALMSEC-ALMYEAR寄存器
这部分寄存器是存放闹钟时间的。属于数据寄存器。BCD码的形式存放数据
6.BCDSEC-BCDYEAR寄存器
这部分寄存器是存放实时时间的。属于数据寄存器。BCD码的形式存放数据
7.CURTICCNT寄存器
该寄存器是用于观察当前TICCNT寄存器内的计数值的。只读。
总体难度不大,相关的闹钟中断和TICK中断在使用时和外部中断类似。