【WCH蓝牙系列芯片】-基于CH582开发板—万年历RTC时钟

-------------------------------------------------------------------------------------------------------------------------------------

在使用CH582这款芯片,可以用其内部的RTC跑万年历时钟。
    实时时钟(RTC)是一个独立的定时器模块,其可编程计数器最大可达到32位,配合软件可以实现实时时钟功能,并且可以修改计数器的值来重新配置系统的当前时间和日期。RTC模块在后备供电区域,系统复位和待机模式唤醒对其不造成影响。
    要想实现万年历时间误差不太,RTC的低频晶振得选着外部的32.768K低频晶振,虽然CH582中有内部的32.768K低频晶振,也有外部的32.768K低频晶振,这两个区别在于精度不同,外部的晶振在20ppm以内内部的晶振在400ppm-5000ppm.
    在程序中,进行RTC初始化配置:

    在初始化RTC时间时,在跑蓝牙程序中,除初始化外,在程序运行中不可再调用此函数,否则会影响tmos和蓝牙的运行,可以将设置的时间值与当前时间作差,获取时间时加上这个差值。
在进入RTC中断时,有两种方式,
1、定时模式,有八种周期可选

     

 

2、触发模式,可以自行配置参数,
如:TC_TRIGFunCfg(32768*1); //触发方式 32768为1s

 在RTC中断服务函数中,将万年历时间都打印出来。

 通过串口打印可以看到按照一秒的时间将RTC时间打印出来

    在使用RTC时,如果使用了内部的32.768K低频时钟,需要做校准处理,不然误差很大,

    要是跑蓝牙程序就会出现断连的现象,使用  Lib_Calibration_LSI();两分钟内部校准一下。

 

posted on 2024-04-22 19:30  凡仕  阅读(230)  评论(0编辑  收藏  举报