解决上电和长期运行屏幕触摸无效的问题

This commit is contained in:
2025-12-05 17:42:01 +08:00
parent fe65a0c408
commit bdcc73bc2b
15 changed files with 95 additions and 40 deletions

View File

@@ -11,7 +11,7 @@
#define D_System_Storage "16MB+8MB"
#define D_System_Hardware "1.0"
#define D_System_Screen "480*480"
#define D_System_Ver 107
#define D_System_Ver 108
enum
{

View File

@@ -3389,7 +3389,14 @@ void mcu_write_rtctime(unsigned char time[])
//=0是utc+0
//<0是utc-
//>0是utc+
char zone=(char)((Localtime-standardtime)/3600);//标准时区
// //UTC-04:30
// Localtime=1764832680;
// standardtime=1764848880;
// printf("test utc-04:30 standardtime:%ld\r\n",standardtime);
// printf("test utc-04:30 Localtime:%ld\r\n",Localtime);
int zone=(int)((Localtime-standardtime)/3600);//标准时区
int zone_offset=((Localtime-standardtime)%3600);//处理5:30 6:30等等非准标时区
printf("zone:%d;zone_offset:%d\r\n", zone,zone_offset);
@@ -3481,16 +3488,19 @@ void mcu_write_rtctime(unsigned char time[])
}
struct timeval tv;
//tv.tv_sec=(time_t)Localtime;//用本地时间 时区要设置0 相对0时区的时间
tz_set(zone);
tv.tv_sec=(time_t)standardtime;//utc时间
tz_set(zone);//不支持半时区设置
standardtime=Localtime-zone*3600;//重新计算标准utc+0的时间 考虑UTC+5:30...等非标准时区
tv.tv_sec=(time_t)standardtime;//utc时间 疑惑点 是否要+-1800/2700
tv.tv_usec=0;
// int settimeofday(const struct timeval *tv , const struct timezone *tz);
//tz参数为时区 通常将参数tz设置为NULL表示使用当前系统的时区
//输入时间戳通过settimeofday()函数来设置系统时间,这个函数设置的精度可以精确到微秒
// tz_set(0);//本地时间就是相对0时区的时间
settimeofday(&tv, NULL);//不用重新设置时区
settimeofday(&tv, NULL);
my_memcpy((void *)timestamp,(const char *)time,4); //get timestamp
zigbee_timestamp_to_time();