/* Ailerons state machine
Pilotare un LED RGB in base al canale degli alettoni:
+Questo sketch usa la funzione pulseIn(),
+per versione con interrupts vedere esempio successivo.
= 3 stati + 2 transizioni:
- piatto
- roll a sx
- roll a dx
-NOTE: uso di goto all'interno dell FSM.
-
TODO:
-
* clean up magic numbers
*/
#include <common.h>
+#define dEBUG // Cambiare in DEBUG per il debug
// Variabili:
unsigned long currentMillis; // timestamp reference per millis per tutto il loop
RGBLed ailerons(11,10,9,255); // Common Cat
// Transizione: Pwm
-Pwm sxLamp(10); // Lampeggiatore
-Pwm dxLamp(9); // Lampeggiatore
+Lampeggiatore sxLamp(10); // Lampeggiatore
+Lampeggiatore dxLamp(9); // Lampeggiatore
// Variabili per lettura canale servo
Serial.begin(9600);
#endif
- // Funzione relativa a calibrazione:
- mid_point = calibraTrim(ailPin) ; // + LED di servizio per monitor calibrazione
+// Funzione relativa a calibrazione:
+mid_point = calibraTrim(ailPin) ; // + LED di servizio per monitor calibrazione
}
void loop() {
case sxin:
// Transizione a sx
- sxLamp.(200);
+ sxLamp.Blink(200);
if (currentMillis - pausa > FSM_lastMillis ) {
ailstate = sx;
}
case dxin:
// Transizione a dx
- dxLamp.(200);
+ dxLamp.Blink(200);
if (currentMillis - pausa > FSM_lastMillis ) {
ailstate = dx;
}