From 7cc37ac8b990fc9c211644f607d60356c45316c4 Mon Sep 17 00:00:00 2001 From: cyberman54 Date: Wed, 19 Jan 2022 14:25:17 +0100 Subject: [PATCH] bugfix dcf77 pulse pause --- src/dcf77.cpp | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/src/dcf77.cpp b/src/dcf77.cpp index f8ca280c..fd59cb51 100644 --- a/src/dcf77.cpp +++ b/src/dcf77.cpp @@ -19,29 +19,31 @@ static const char TAG[] = __FILE__; // triggered by second timepulse to ticker out DCF signal void DCF77_Pulse(uint8_t bit) { - TickType_t startTime = xTaskGetTickCount(); + TickType_t startTime; // induce a DCF Pulse - for (uint8_t pulse = 0; pulse <= 2; pulse++) { + for (uint8_t pulseLength = 0; pulseLength <= 2; pulseLength++) { - switch (pulse) { + startTime = xTaskGetTickCount(); // reference time pulse start - case 0: // start of second -> start of timeframe for logic signal + switch (pulseLength) { + + case 0: // 0ms = start of pulse digitalWrite(HAS_DCF77, dcf_low); break; - case 1: // 100ms after start of second -> end of timeframe for logic 0 + case 1: // 100ms = logic 0 if (bit == 0) digitalWrite(HAS_DCF77, dcf_high); break; - case 2: // 200ms after start of second -> end of timeframe for logic 1 + case 2: // 200ms = logic 1 digitalWrite(HAS_DCF77, dcf_high); break; } // switch - // pulse pause + // delay to genrate pulseLength vTaskDelayUntil(&startTime, pdMS_TO_TICKS(100)); } // for