]> git.piffa.net Git - sketchbook_andrea/blobdiff - advanced_projects/state_machine/semaforo_5_doppia_fsm/semaforo_5_doppia_fsm.ino
interrupts
[sketchbook_andrea] / advanced_projects / state_machine / semaforo_5_doppia_fsm / semaforo_5_doppia_fsm.ino
index 619b85e2ba20fe3dd752cb0b09e7db3fd0c2adac..dfcc3626a77fe72103a2f8860ac0aec5c64381e4 100644 (file)
@@ -49,17 +49,17 @@ switch (FSM1) {
     break;
 
     case green:
-    if (millis() > timer + pausa * 2/3) {
+    if (millis() - timer >= pausa * 2/3) {
     FSM1 = wait_button ;
-    timer = millis(); 
+    timer += pausa * 2/3;
     }
     break;
 
     case wait_button:
     if (digitalRead(input) == LOW) { 
+    delay(20); // Debouncing, si potrebbe fare con millis() o un interrupt
     FSM1 = turn_yellow ; 
     timer = millis();
-    delay(20); // Debouncing, si potrebbe fare con millis()
     };
 
     break;
@@ -70,9 +70,9 @@ switch (FSM1) {
     break;
 
     case yellow :
-    if (millis() > timer + pausa * 2/3) {
+    if (millis() - timer >= pausa * 2/3) {
         FSM1 = turn_red ;
-        timer = millis();
+        timer += pausa * 2/3 ;
     }
     break;
 
@@ -100,9 +100,9 @@ switch (FSM2) {
     break;
 
     case green:
-    if (millis() > timer + pausa * 2/3) {
+    if (millis() - timer >= pausa * 2/3) {
     FSM2 = turn_yellow;
-    timer = millis(); 
+    timer += pausa * 2/3;
     }
     break;
 
@@ -112,9 +112,9 @@ switch (FSM2) {
     break;
 
     case yellow :
-    if (millis() > timer + pausa / 3) {
+    if (millis() - timer >= pausa / 3) {
     FSM2 = turn_red ;
-    timer = millis(); 
+    timer += pausa * 2/3;
     }
     break;