diff --git a/led_controller.h b/led_controller.h
index daa7dd2ac7ddef059fe0a41cc34e9836fc5f9039..74edb10468be56a87fd3c917d2994041d6cc2879 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: