testando

Dependencies:   mbed TextLCD2

Revision:
66:ebc2a21cd514
Parent:
63:32ba7c4becfc
Child:
73:6c5f3c9cc90e
--- a/main_PM.cpp	Mon Jun 01 20:03:17 2020 +0000
+++ b/main_PM.cpp	Tue Jun 02 13:53:13 2020 +0000
@@ -29,8 +29,8 @@
 InterruptIn interrupcao(PB_11);
 
 //pinos do rele, saida digital para acionar o rele se necessario, dada uma entrada no pino da emergencia 
-DigitalOut rele1(PC_5);
-DigitalOut rele2(PB_9);
+DigitalOut rele1(PC_5, 1);
+DigitalOut rele2(PB_9, 1);
 
 //botoes para movimentacao eixo a eixo
 DigitalIn x_mais(PA_0);
@@ -88,20 +88,28 @@
 void mov_x_mais() {for(int i = 0; i < 4; i++){eixox =     hor[i];wait(t_motor);coord_x += (5.625*5/32)/360;}}
 void mov_y_mais() {for(int i = 0; i < 4; i++){eixoy =     hor[i];wait(t_motor);coord_y += (5.625*5/32)/360;est_y = 0;}}
 void mov_z_mais() {for(int i = 0; i < 4; i++){eixoz =     hor[i];wait(t_motor);coord_z += (5.625*5/32)/360;est_z = 0;}}
-
-//Funcao de interrupcao
+int emergency = 0;
+//Funcao de emergencia por interrupcao
 void emergencia(){TextLCD lcd(D4, D5, D6, D7, D8, D9); 
         rele1 = 0;
+        rele2 = 0;
         eixox = 0b0000;
         eixoy = 0b0000;
         eixoz = 0b0000;
         lcd.cls();
-        lcd.printf("Botao Emergencia");
-        lcd.locate(0,1);
-        lcd.printf("    acionado    ");
+        lcd.printf("EMERGENCIA ACIONADA");
+        lcd.locate(2,2);
+        lcd.printf("Operacao pausada");
+        emergency = 1;}
+
+void solta_emergencia(){TextLCD lcd(D4, D5, D6, D7, D8, D9);
+        rele1 = 1;
+        rele2 = 1;
+        emergency = 0;
+        lcd.cls();
         lcd.locate(0,2);
-        lcd.printf("Operacao pausada");
-        wait(5);}
+        lcd.printf("Pressione 0 para");
+        lcd.locate(5,1); lcd.printf("continuar");}
 
 //Funcao de zeramento 
 
@@ -135,12 +143,11 @@
 
 float pos_x_solta=0;
 float pos_y_solta=0;
-
 //main
 
 int main() {
-        
-        interrupcao.fall(&emergencia);    
+        interrupcao.fall(&emergencia);
+        interrupcao.rise(&solta_emergencia);
         int volume;
         int volume_solta;
         int diametro_solta;
@@ -164,7 +171,9 @@
         lcd.locate(0,2);
         lcd.printf("sistema");
         lcd.locate(0,3);
-        lcd.printf("A - proximo");         
+        lcd.printf("A - proximo");
+        printf("\n%i", emergency);
+    if(emergency == 0){     
     while(1) {
         tecla = pega_tecla();         
         printf("\n%s",status_tela);
@@ -878,5 +887,6 @@
            funcao_acomp();
            status_tela="acompanhamento"; 
             };
+            }
       }
 }