Cambio de pin de entrada digital a PA10

Dependencies:   BufferedSerial PinDetect mbed

Fork of DTK-MEGAPACA_NUCLEO by Felícito Manzano

Revision:
12:35db44c28845
Parent:
11:780b02b6a035
Child:
13:e3a1657843c0
--- a/main.cpp	Mon Feb 26 22:59:46 2018 +0000
+++ b/main.cpp	Fri Mar 02 12:56:05 2018 -0600
@@ -19,8 +19,8 @@
 ************************************** */
 BufferedSerial  gv300(USBTX, USBRX);
 //Serial          pcusb(USBTX, USBRX);
-InterruptIn     input(PA_9);
-DigitalOut      myled(PB_3);
+InterruptIn     input(PC_13); //PA_9
+DigitalOut      myled(PA_5); //PB_3
 
 // DECLARACIÓN DE VARIABLES
 //**************************************
@@ -28,9 +28,8 @@
 int             contador_tramas         = 2;        // Para contar las tramas enviadas a SKT300
 int             factor                  = 1;        // Para multiplicar
 int             i                       = 0;        // Uso genérico
-int             apagar                  = 0;
-bool            activa_1                = false;
-bool            activa_2                = false;
+int             contador_pulsos         = 0;
+bool            apagar                  = false;
 char            skytrack_frame[128];                // Salida de datos para SKT300
 char            buffered_frame[128];                      // Salida temporal de datos
 
@@ -43,7 +42,7 @@
 
 void pressed_f()
 {
-    activa_1 = true;
+    contador_pulsos++;
 }
 
 int main() {
@@ -60,31 +59,28 @@
     funcionando.start();
     
     while(1) {
-        myled = !myled;
-        wait(0.5);
+        //myled = !myled;
+        //wait(0.5);
         
         // Validar puslsos.
-        if (activa_1) {
-            wait_ms(500);
-            activa_2 = input.read();
-            
-            if (!(activa_2)) {
-                apagar = 1;
-                activa_1 = false;
-                activa_2 = false;
+        if (contador_pulsos >= 1) {
+            myled = 1;
+            wait(5.0);
+            if (contador_pulsos == PULSOS_APAGAR) {
+                apagar = true;
             } else {
-                apagar = 0;
-                activa_1 = false;
-                activa_2 = false;
+                apagar = false;
             }
+            contador_pulsos = 0;
+            myled = 0;
         }
         
         
         // CONSULTAR SI SE HA PRESIONADO EL BOTÓN 
-        if ((apagar == 1) && (apagando_cp.read() < 0.5)) {
+        if ((apagar) && (apagando_cp.read() < 0.5)) {
             //pcusb.printf("\r\nBoton de panico presionado.\r\n");
             //pcusb.printf("Apagando en T-15\r\n");
-            apagar = 0;
+            apagar = false;
             apagando_cp.start();
             sprintf(skytrack_frame,"%s%s%s%s%04X%s", 
                     CABECERA_TX, CODIGO_INT, INIT_SHUTDOWN, 
@@ -151,7 +147,10 @@
                     //pcusb.printf("Apagado remoto -FALLIDO!\r\n");    
                 }
             }  else { 
-                gv300.printf("%s\r\n", SHUTDOWN_ERRO);
+                sprintf(skytrack_frame,"%s%s%s%s%04X%s", 
+                        CABECERA_TX, CODIGO_INT, SHUTDOWN_ERRO, 
+                        FIN_CABECERA_TX, contador_tramas, ULTIMO_CARACTER);
+                gv300.printf("%s\r\n", skytrack_frame);
                 //pcusb.printf("Apagado remoto -FALLIDO!\r\n");
             }
         }