diff options
| author | Bernard Xiong <[email protected]> | 2021-02-15 09:26:52 +0800 |
|---|---|---|
| committer | GitHub <[email protected]> | 2021-02-15 09:26:52 +0800 |
| commit | 7d72bdf303f1b876c276694007f20622a126b19f (patch) | |
| tree | a62725c58b3ffdb96a6251e5b5fb581d32a048f5 /bsp/raspberry-pi | |
| parent | bfde38030b2f988c30b864f7cd8c7f4c53a9762c (diff) | |
| parent | 86ebf17a2360de740219cf9a5441cb72629c5a1d (diff) | |
Merge pull request #4314 from mysterywolf/mktime1
[bug][localtime]解决底层驱动格林威治时间与当地时间混乱使用的问题
Diffstat (limited to 'bsp/raspberry-pi')
| -rw-r--r-- | bsp/raspberry-pi/raspi3-32/driver/drv_rtc.c | 9 | ||||
| -rw-r--r-- | bsp/raspberry-pi/raspi3-64/driver/drv_rtc.c | 8 |
2 files changed, 11 insertions, 6 deletions
diff --git a/bsp/raspberry-pi/raspi3-32/driver/drv_rtc.c b/bsp/raspberry-pi/raspi3-32/driver/drv_rtc.c index 8a33e2be64..147504bd16 100644 --- a/bsp/raspberry-pi/raspi3-32/driver/drv_rtc.c +++ b/bsp/raspberry-pi/raspi3-32/driver/drv_rtc.c @@ -8,12 +8,15 @@ * 2019-07-29 zdzn first version */ +#include <rtthread.h> +#include <rtdevice.h> +#include <sys/time.h> #include "drv_rtc.h" #ifdef BSP_USING_RTC #define RTC_I2C_BUS_NAME "i2c0" -#define RTC_ADDR 0x68 +#define RTC_ADDR 0x68 static struct rt_device rtc_device; static struct rt_i2c_bus_device *i2c_bus = RT_NULL; @@ -185,13 +188,13 @@ static time_t raspi_get_timestamp(void) tm_new.tm_min = ((buf[1] & 0x7F) / 16 + 0x30) + (buf[1] & 0x7F) % 16+ 0x30; tm_new.tm_sec = ((buf[0] & 0x7F) / 16 + 0x30) + (buf[0] & 0x7F) % 16+ 0x30; - return mktime(&tm_new); + return timegm(&tm_new); } static int raspi_set_timestamp(time_t timestamp) { struct tm *tblock; - tblock = localtime(×tamp); + tblock = gmtime(×tamp); buf[0] = 0; buf[1] = tblock->tm_sec; buf[2] = tblock->tm_min; diff --git a/bsp/raspberry-pi/raspi3-64/driver/drv_rtc.c b/bsp/raspberry-pi/raspi3-64/driver/drv_rtc.c index e38393bbd0..18fd6474a2 100644 --- a/bsp/raspberry-pi/raspi3-64/driver/drv_rtc.c +++ b/bsp/raspberry-pi/raspi3-64/driver/drv_rtc.c @@ -8,7 +8,9 @@ * 2019-07-29 zdzn first version */ - +#include <rtthread.h> +#include <rtdevice.h> +#include <sys/time.h> #include "drv_rtc.h" #ifdef BSP_USING_RTC @@ -33,13 +35,13 @@ static time_t raspi_get_timestamp(void) tm_new.tm_min = ((buf[1] & 0x7F) / 16 + 0x30) + (buf[1] & 0x7F) % 16+ 0x30; tm_new.tm_sec = ((buf[0] & 0x7F) / 16 + 0x30) + (buf[0] & 0x7F) % 16+ 0x30; - return mktime(&tm_new); + return timegm(&tm_new); } static int raspi_set_timestamp(time_t timestamp) { struct tm *tblock; - tblock = localtime(×tamp); + tblock = gmtime(×tamp); buf[0] = 0; buf[1] = tblock->tm_sec; buf[2] = tblock->tm_min; |
