use GPS timepulse line

This commit is contained in:
Klaus K Wilting 2019-02-09 14:18:46 +01:00
parent fde157dd0d
commit a46b16aa5d

View File

@ -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