mirror of
https://github.com/markqvist/OpenModem.git
synced 2025-06-19 20:04:21 -04:00
Implemented setting internal clock from GPS
This commit is contained in:
parent
34a5346566
commit
07f4b198bc
8 changed files with 162 additions and 41 deletions
17
util/time.h
17
util/time.h
|
@ -6,6 +6,8 @@
|
|||
#include "hardware/LED.h"
|
||||
#include "hardware/sdcard/diskio.h"
|
||||
|
||||
#define UNIX_EPOCH_OFFSET 946684800
|
||||
|
||||
#define DIV_ROUND(dividend, divisor) (((dividend) + (divisor) / 2) / (divisor))
|
||||
|
||||
typedef int32_t ticks_t;
|
||||
|
@ -43,10 +45,25 @@ static inline uint32_t rtc_seconds(void) {
|
|||
return result;
|
||||
}
|
||||
|
||||
static inline uint32_t rtc_unix_timestamp(void) {
|
||||
uint32_t result;
|
||||
ATOMIC_BLOCK(ATOMIC_RESTORESTATE) {
|
||||
result = _rtc_seconds;
|
||||
}
|
||||
|
||||
return result+UNIX_EPOCH_OFFSET;
|
||||
}
|
||||
|
||||
static inline mtime_t rtc_milliseconds(void) {
|
||||
return ticks_to_ms(timer_clock() % CLOCK_TICKS_PER_SEC);
|
||||
}
|
||||
|
||||
static inline void rtc_set_seconds(uint32_t seconds) {
|
||||
ATOMIC_BLOCK(ATOMIC_RESTORESTATE) {
|
||||
_rtc_seconds = seconds;
|
||||
}
|
||||
}
|
||||
|
||||
inline void cpu_relax(void) {
|
||||
// Do nothing!
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue