From e9aec3d1a0f8534ddcf4cd36a73b7605e5ff199b Mon Sep 17 00:00:00 2001 From: "tom.tiltmann" <tom.tiltmann@th-koeln.de> Date: Thu, 22 Dec 2022 11:32:05 +0100 Subject: [PATCH] blink() kann jetzt ganz an/ausschalten --- led_controller.h | 38 +++++++++++++++++++++++--------------- 1 file changed, 23 insertions(+), 15 deletions(-) diff --git a/led_controller.h b/led_controller.h index daa7dd2..74edb10 100644 --- a/led_controller.h +++ b/led_controller.h @@ -22,23 +22,31 @@ public: void blink(uint16_t interval_off, uint16_t interval_on) { - switch (digitalRead(PIN)) - { - case HIGH: - if ((millis() - timestamp) > interval_on) - { - digitalWrite(PIN, !digitalRead(PIN)); - timestamp = millis(); - } - break; - case LOW: - if ((millis() - timestamp) > interval_off) + // 1. Fall: Keine Zeitintervall für den Zustand AUS-> LED ist also dauerhaft angeschaltet! + if (interval_off==0) + digitalWrite(PIN, HIGH); + // 2. Fall: Keine Zeitintervall für den Zustand EIN-> LED ist also dauerhaft ausgeschaltet! + else if (interval_on==0) + digitalWrite(PIN, LOW); + // 3. Fall: Es gibt Zeitintervalle EIN und AUS: + else + switch (digitalRead(PIN)) { - digitalWrite(PIN, !digitalRead(PIN)); - timestamp = millis(); + case HIGH: + if ((millis() - timestamp) > interval_on) + { + digitalWrite(PIN, !digitalRead(PIN)); + timestamp = millis(); + } + break; + case LOW: + if ((millis() - timestamp) > interval_off) + { + digitalWrite(PIN, !digitalRead(PIN)); + timestamp = millis(); + } + break; } - break; - } } private: -- GitLab