1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253 |
- /*
- * time.h
- *
- * Created on: May 31, 2016
- * Author: liuhan
- */
- #ifndef TIME_H_
- #define TIME_H_
- #include "osapi.h"
- #include "os_type.h"
- #include "lwip/sntp.h"
- struct timeval {
- unsigned long tv_sec; /* seconds */
- unsigned long tv_usec; /* and microseconds */
- };
- /***************************RTC TIME OPTION***************************************/
- // daylight settings
- // Base calculated with value obtained from NTP server (64 bits)
- #define sntp_base (*((uint64_t*)RTC_STORE0))
- // Timer value when base was obtained
- #define TIM_REF_SET(value) WRITE_PERI_REG(RTC_STORE2, value)
- #define TIM_REF_GET() READ_PERI_REG(RTC_STORE2)
- // Setters and getters for CAL, TZ and DST.
- #define RTC_CAL_SET(val) do {uint32 value = READ_PERI_REG(RTC_STORE3);\
- value |= ((val) & 0x0000FFFF);\
- WRITE_PERI_REG(RTC_STORE3, value);\
- }while(0)
- #define RTC_DST_SET(val) do {uint32 value = READ_PERI_REG(RTC_STORE3);\
- value |= (((val)<<16) & 0x00010000);\
- WRITE_PERI_REG(RTC_STORE3, value);\
- }while(0)
- #define RTC_TZ_SET(val) do {uint32 value = READ_PERI_REG(RTC_STORE3);\
- value |= (((val)<<24) & 0xFF000000);\
- WRITE_PERI_REG(RTC_STORE3, value);\
- }while(0)
- #define RTC_CAL_GET() (READ_PERI_REG(RTC_STORE3) & 0x0000FFFF)
- #define RTC_DST_GET() ((READ_PERI_REG(RTC_STORE3) & 0x00010000)>>16)
- #define RTC_TZ_GET() ((((int)READ_PERI_REG(RTC_STORE3)) & ((int)0xFF000000))>>24)
- void system_update_rtc(time_t t, uint32_t us);
- time_t sntp_get_rtc_time(sint32_t *us);
- int gettimeofday(struct timeval* t, void* timezone);
- void updateTime(uint32 ms);
- bool configTime(int timezone, int daylightOffset, char *server1, char *server2, char *server3, bool enable);
- time_t time(time_t *t);
- unsigned long millis(void);
- unsigned long micros(void);
- #endif /* TIME_H_ */
|