summaryrefslogtreecommitdiff
path: root/bsp/raspberry-pi
diff options
context:
space:
mode:
authorMeco Man <[email protected]>2021-02-07 21:08:41 +0800
committerMeco Man <[email protected]>2021-02-07 21:08:41 +0800
commitf073911cd32bf8bfd02d6945db230e5e7b9b75ea (patch)
treedcc48ceaf009960e89defb3ce712dc7feccec4a9 /bsp/raspberry-pi
parent852d7d7552bd3fe898115ea16ba401970b0d1fad (diff)
解决底层驱动格林威治时间与当地时间胡乱使用的问题 mktime函数改为timegm函数
Diffstat (limited to 'bsp/raspberry-pi')
-rw-r--r--bsp/raspberry-pi/raspi3-32/driver/drv_rtc.c7
-rw-r--r--bsp/raspberry-pi/raspi3-64/driver/drv_rtc.c6
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)