diff options
| author | Meco Man <[email protected]> | 2021-02-07 21:08:41 +0800 |
|---|---|---|
| committer | Meco Man <[email protected]> | 2021-02-07 21:08:41 +0800 |
| commit | f073911cd32bf8bfd02d6945db230e5e7b9b75ea (patch) | |
| tree | dcc48ceaf009960e89defb3ce712dc7feccec4a9 /bsp/raspberry-pi | |
| parent | 852d7d7552bd3fe898115ea16ba401970b0d1fad (diff) | |
解决底层驱动格林威治时间与当地时间胡乱使用的问题 mktime函数改为timegm函数
Diffstat (limited to 'bsp/raspberry-pi')
| -rw-r--r-- | bsp/raspberry-pi/raspi3-32/driver/drv_rtc.c | 7 | ||||
| -rw-r--r-- | bsp/raspberry-pi/raspi3-64/driver/drv_rtc.c | 6 |
2 files changed, 9 insertions, 4 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..f69788b318 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,7 +188,7 @@ 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) diff --git a/bsp/raspberry-pi/raspi3-64/driver/drv_rtc.c b/bsp/raspberry-pi/raspi3-64/driver/drv_rtc.c index e38393bbd0..7383464513 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,7 +35,7 @@ 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) |
