yuyueha 发表于 2019-7-11 16:01:06

【提问】温控器TC041C11W04是否有硬件RTC功能

请教各位老板,温控器TC041C11W04是否有硬件RTC功能,在阅读代码的时候发现程序是用软件做的RTC定时,此函数每1秒调用一次,先将RTC_Set的值读一下再将RTC_Set的值写一下,十分不解,若没有硬件rtc功能,以下函数是没啥用的吧?

void Time_Calibration(void){    read_dgus_vp(RTC_Set,(u8*)time_calibra,4);    if((time_calibra==0x5A)&&(time_calibra==0xA5))    {      real_time.year=time_calibra;      real_time.month=time_calibra;      real_time.day=time_calibra;      real_time.hour=time_calibra;      real_time.min=time_calibra;      real_time.sec=time_calibra;      write_dgus_vp(RTC,(u8*)&real_time.year,4);      time_calibra=0;      time_calibra=0;      write_dgus_vp(RTC_Set,(u8*)time_calibra,4);    }}


yuyueha 发表于 2019-7-11 16:20:40

应该是每一秒读取一次硬件rtc的数据,然后更新realtime的值。如果没用硬件rtc的话,读或者写RTC_SET这个变量,都是无意义的对吗?

追风的鸟 发表于 2019-7-11 16:29:40

TC041C11W04是没有硬件RTC,校准时间是依据WIFI模块联网所更新的网络时间,由于wifi模块获取到了网络会往硬件RTC设置接口0x9C写时间。wifi模块第一次检测到时间后或者会定时将实时时间写入到0x9C接口,这样达到设置硬件RTC的目的,而TC041C11W04是没有硬件RTC,所以一直需要检测是否wifi模块更新了时间,如果更新了时间,通过OS将时间写入到RTC接口后,需要清零RTC设置接口0x9C,所以需要将清零后的数据重新写入到这个接口。

yuyueha 发表于 2019-7-11 16:52:24

追风的鸟 发表于 2019-7-11 16:29
TC041C11W04是没有硬件RTC,校准时间是依据WIFI模块联网所更新的网络时间,由于wifi模块获取到了网络会往硬 ...

懂了。请问下温控器非网络版是否带硬件RTC啊?另外还有一个问题也顺便请教下,我自己写的系统复位函数,请问这个函数写法有没有问题,另外调用这个函数,系统就会复位对吗?
u8 code sys_reset={0x55,0xAA,0x5A,0xA5};
void Sys_Reset_Handler(void)
{
        write_dgus_vp(SYS_RESET, sys_reset, 2);
}

追风的鸟 发表于 2019-7-11 17:05:17

yuyueha 发表于 2019-7-11 16:52
懂了。请问下温控器非网络版是否带硬件RTC啊?另外还有一个问题也顺便请教下,我自己写的系统复位函数, ...

现在温控器都是不带硬件RTC 的,系统变量接口中硬件RTC是有预留的,以后是可以加的。
调用这个函数,CPU会复位一次。

WhiteElectronic 发表于 2022-2-3 23:42:41

我正在寻找 TC041 C 源代码。 你能分享吗?
页: [1]
查看完整版本: 【提问】温控器TC041C11W04是否有硬件RTC功能