fix time sync pps start bug
This commit is contained in:
parent
7211d1a4dd
commit
ba51d73d4e
@ -20,9 +20,7 @@ HardwareSerial IF482(2); // use UART #2 (#1 may be in use for serial GPS)
|
|||||||
|
|
||||||
Ticker timesyncer;
|
Ticker timesyncer;
|
||||||
|
|
||||||
void timeSync() {
|
void timeSync() { xTaskNotify(irqHandlerTask, TIMESYNC_IRQ, eSetBits); }
|
||||||
xTaskNotifyFromISR(irqHandlerTask, TIMESYNC_IRQ, eSetBits, NULL);
|
|
||||||
}
|
|
||||||
|
|
||||||
time_t timeProvider(void) {
|
time_t timeProvider(void) {
|
||||||
|
|
||||||
@ -116,6 +114,7 @@ void timepulse_start(void) {
|
|||||||
timerAttachInterrupt(ppsIRQ, &CLOCKIRQ, true);
|
timerAttachInterrupt(ppsIRQ, &CLOCKIRQ, true);
|
||||||
timerAlarmEnable(ppsIRQ);
|
timerAlarmEnable(ppsIRQ);
|
||||||
#endif
|
#endif
|
||||||
|
now(); // refresh sysTime to pps
|
||||||
|
|
||||||
// start cyclic time sync
|
// start cyclic time sync
|
||||||
timeSync(); // init systime by RTC or GPS or LORA
|
timeSync(); // init systime by RTC or GPS or LORA
|
||||||
@ -213,7 +212,7 @@ void clock_init(void) {
|
|||||||
void clock_loop(void *taskparameter) { // ClockTask
|
void clock_loop(void *taskparameter) { // ClockTask
|
||||||
|
|
||||||
// caveat: don't use now() in this task, it will cause a race condition
|
// caveat: don't use now() in this task, it will cause a race condition
|
||||||
// due to concurrent access to i2c bus for setting rtc via SyncProvider!
|
// due to concurrent access to i2c bus for setting rtc!
|
||||||
|
|
||||||
#define nextmin(t) (t + DCF77_FRAME_SIZE + 1) // next minute
|
#define nextmin(t) (t + DCF77_FRAME_SIZE + 1) // next minute
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user