use GPS timepulse line
This commit is contained in:
parent
fde157dd0d
commit
a46b16aa5d
@ -105,8 +105,18 @@ float get_rtctemp(void) {
|
|||||||
// helper function to setup a pulse for time synchronisation
|
// helper function to setup a pulse for time synchronisation
|
||||||
int pps_init(uint32_t pulse_period_ms) {
|
int pps_init(uint32_t pulse_period_ms) {
|
||||||
|
|
||||||
|
// use time pulse from GPS as time base with fixed 1Hz frequency
|
||||||
|
#if defined GPS_INT && defined GPS_CLK
|
||||||
|
|
||||||
|
// setup external interupt for active low RTC INT pin
|
||||||
|
pinMode(GPS_INT, INPUT_PULLDOWN);
|
||||||
|
|
||||||
|
// setup external rtc 1Hz clock as pulse per second clock
|
||||||
|
ESP_LOGI(TAG, "Time base GPS timepulse");
|
||||||
|
return 1; // success
|
||||||
|
|
||||||
// use pulse from on board RTC chip as time base with fixed frequency
|
// use pulse from on board RTC chip as time base with fixed frequency
|
||||||
#if defined RTC_INT && defined RTC_CLK
|
#elif defined RTC_INT && defined RTC_CLK
|
||||||
|
|
||||||
// setup external interupt for active low RTC INT pin
|
// setup external interupt for active low RTC INT pin
|
||||||
pinMode(RTC_INT, INPUT_PULLUP);
|
pinMode(RTC_INT, INPUT_PULLUP);
|
||||||
@ -123,8 +133,6 @@ int pps_init(uint32_t pulse_period_ms) {
|
|||||||
}
|
}
|
||||||
return 1; // success
|
return 1; // success
|
||||||
|
|
||||||
#elif defined RTC_INT && defined HAS_GPS
|
|
||||||
|
|
||||||
#else
|
#else
|
||||||
// use ESP32 hardware timer as time base with adjustable frequency
|
// use ESP32 hardware timer as time base with adjustable frequency
|
||||||
if (pulse_period_ms) {
|
if (pulse_period_ms) {
|
||||||
@ -138,13 +146,15 @@ int pps_init(uint32_t pulse_period_ms) {
|
|||||||
return 0; // failure
|
return 0; // failure
|
||||||
}
|
}
|
||||||
return 1; // success
|
return 1; // success
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
void pps_start() {
|
void pps_start() {
|
||||||
#ifdef RTC_INT // start external clock
|
#ifdef GPS_INT // start external clock
|
||||||
//attachInterrupt(digitalPinToInterrupt(RTC_INT), CLOCKIRQ, FALLING);
|
attachInterrupt(digitalPinToInterrupt(GPS_INT), CLOCKIRQ, RISING);
|
||||||
attachInterrupt(digitalPinToInterrupt(RTC_INT), CLOCKIRQ, RISING);
|
#elif defined RTC_INT // start external clock
|
||||||
|
attachInterrupt(digitalPinToInterrupt(RTC_INT), CLOCKIRQ, FALLING);
|
||||||
#else // start internal clock
|
#else // start internal clock
|
||||||
timerAlarmEnable(clockCycle);
|
timerAlarmEnable(clockCycle);
|
||||||
#endif
|
#endif
|
||||||
|
Loading…
Reference in New Issue
Block a user