]> git.piffa.net Git - sketchbook_andrea/commitdiff
SFM: fixed times intervas for pause
authorAndrea Manni <andrea@piffa.net>
Mon, 6 Feb 2017 17:52:19 +0000 (18:52 +0100)
committerAndrea Manni <andrea@piffa.net>
Mon, 6 Feb 2017 17:52:19 +0000 (18:52 +0100)
advanced_projects/state_machine/semaforo_3_millis/semaforo_3_millis.ino
advanced_projects/state_machine/semaforo_4_doppio/semaforo_4_doppio.ino
advanced_projects/state_machine/semaforo_5_doppia_fsm/semaforo_5_doppia_fsm.ino

index 50eb1aebafa0e9aff1485f8a3d7749f0433cf3a6..68825a6515005c130fccd3d48b47e403ce6b471c 100644 (file)
@@ -48,15 +48,15 @@ switch (state) {
     led.Green();
     if (millis() - timer >= pausa * 2/3) {
     state = wait_button ;
-    timer = millis(); 
+    timer += pausa * 2/3 ;
     }
     break;
 
     case wait_button:
     if (digitalRead(input) == LOW) { 
     state = turn_yellow ; // Il passaggio di stato avviene alla pressione di un bottone
-    timer = millis();
     delay(20); // Debouncing, si potrebbe fare con millis()
+    timer = millis();
     };
     break;
 
@@ -68,7 +68,7 @@ switch (state) {
     led.Yellow();
     if (millis() - timer >= pausa * 2/3) {
     state = turn_red ;
-    timer = millis(); 
+    timer += pausa * 2/3;
     }
     break;
 
@@ -80,7 +80,7 @@ switch (state) {
     led.Red();
     if (millis() - timer >= pausa) {
     state = turn_green ;
-    timer = millis(); 
+    timer += pausa ;
     }
     break;
 
index 1ad650b4a2a25291bde0541b51d9a4cbb632e45e..ab22ae032d3241ec087e7b325756e270eef615d1 100644 (file)
@@ -54,14 +54,14 @@ switch (state) {
     case green:
     if (millis() - timer => pausa * 2/3) {
     state = wait_button ;
-    timer = millis(); 
+    timer += pausa * 2/3 ;
     }
     break;
 
     case wait_button:
     if (digitalRead(input) == LOW) { 
-    state = turn_yellow ; // Il passaggio di stato avviene alla pressione di un bottone
     delay(20); // Debouncing, si potrebbe fare con millis()
+    state = turn_yellow ; // Il passaggio di stato avviene alla pressione di un bottone
     timer = millis();
     };
 
@@ -75,7 +75,7 @@ switch (state) {
     case yellow :
     if (millis() - timer >= pausa / 3) {
     state = turn_red ;
-    timer = millis(); 
+    timer += pausa / 3;
     }
     break;
 
@@ -88,7 +88,7 @@ switch (state) {
     case red :
     if (millis() - timer >= pausa /3) {
     state = turn_sec_yellow ;
-    timer = millis(); 
+    timer += pausa /3 ;
     }
     break;
 
@@ -100,7 +100,7 @@ switch (state) {
     case sec_yellow :
     if (millis() - timer >= pausa / 3) {
     state = turn_green ;
-    timer = millis(); 
+    timer += pausa /3;
     }
     break;
 
index 602af74328c4bf501154286ffef93c6731addeea..dfcc3626a77fe72103a2f8860ac0aec5c64381e4 100644 (file)
@@ -51,15 +51,15 @@ switch (FSM1) {
     case green:
     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;
@@ -72,7 +72,7 @@ switch (FSM1) {
     case yellow :
     if (millis() - timer >= pausa * 2/3) {
         FSM1 = turn_red ;
-        timer = millis();
+        timer += pausa * 2/3 ;
     }
     break;
 
@@ -102,7 +102,7 @@ switch (FSM2) {
     case green:
     if (millis() - timer >= pausa * 2/3) {
     FSM2 = turn_yellow;
-    timer = millis(); 
+    timer += pausa * 2/3;
     }
     break;
 
@@ -114,7 +114,7 @@ switch (FSM2) {
     case yellow :
     if (millis() - timer >= pausa / 3) {
     FSM2 = turn_red ;
-    timer = millis(); 
+    timer += pausa * 2/3;
     }
     break;