testando

Dependencies:   mbed TextLCD2

Revision:
33:a513498222c7
Parent:
32:2a9b30e1e7ab
Child:
34:1b5a00c55376
--- a/main_PM.cpp	Wed May 27 14:31:48 2020 +0000
+++ b/main_PM.cpp	Wed May 27 15:00:54 2020 +0000
@@ -3,7 +3,8 @@
 #include "TextLCD.h"
 #include "Keypad.h"
 #include "funcoes_ihm.h"
-
+#include <stdio.h>
+#include <string>
 //local para a declaracao de varioveis
 float t_motor = 0.002;      //delay entre o acionamento de uma bobina do motor e a outra
 float t_teclado = 0.01;     //delay entre a leitura de um botão do teclado, necessário para que um click nao gere mais de uma saída
@@ -83,7 +84,6 @@
     printf("\n%i",est_z);*/}
 
 //Varioveis para operacao IHM
-#include <string>
 using std::string;
 string status_tela = "zeramento";
 
@@ -99,8 +99,7 @@
         lcd.printf("automatizado");
         lcd.locate(0,3);
         lcd.printf("de pipetagem");
-        wait(3);         
-    while(1) {
+        wait(3);
         lcd.cls();
         lcd.printf("Por favor, aceite");
         lcd.locate(0,1);
@@ -108,16 +107,16 @@
         lcd.locate(0,2);
         lcd.printf("sistema");
         lcd.locate(0,3);
-        lcd.printf("A - proximo");
+        lcd.printf("A - proximo");                
+    while(1) {
         tecla = teclado.ReadKey(); 
         if(tecla == 'A' && status_tela == "zeramento"){
             zeramento();
-            printf("\n%s",status_tela);
-            status_tela == "inicio";
-            printf("\n%s",status_tela);
+            status_tela = "inicio";
             funcao_inicio();}
+        
        int solta = 1;
-       tecla = teclado.ReadKey();               //read the current key pressed
+       tecla = teclado.ReadKey();               //leitura da tecla apertada
        if(tecla == '\0') solta = 1;             //set the flag when all keys are released
        if((tecla != '\0') && (solta == 1)) {    //if a key is pressed AND previous key was released
          printf("%c\n", tecla);
@@ -134,52 +133,41 @@
         if (y_mais == 0 && est_y == 1){for(int i = 0; i < 4; i++){eixoy = parado[i];wait(t_motor);coord_y += 0;lcd.cls();lcd.printf("Limite de y atingido");}}
         if (z_mais == 0 && est_z == 1){for(int i = 0; i < 4; i++){eixoz = parado[i];wait(t_motor);coord_z += 0;lcd.cls();lcd.printf("Limite de z atingido");}}     
                  
-        if(x_menos == 0){mov_x_menos();
+        while(x_menos == 0){mov_x_menos();
             lcd.cls();lcd.printf("X: %4.1f", coord_x);
             lcd.locate(0,1);lcd.printf("Y: %4.1f", coord_y);
             lcd.locate(0,2);lcd.printf("Z: %4.1f", coord_z);}
             
-        if(y_menos == 0){mov_y_menos();
-            lcd.cls();lcd.printf("X: %4.1f", coord_x);
-            lcd.locate(0,1);lcd.printf("Y: %4.1f", coord_y);
-            lcd.locate(0,2);lcd.printf("Z: %4.1f", coord_z);}
-            
-        if(z_menos == 0){mov_z_menos();
-            lcd.cls();lcd.printf("X: %4.1f", coord_x);
-            lcd.locate(0,1);lcd.printf("Y: %4.1f", coord_y);
-            lcd.locate(0,2);lcd.printf("Z: %4.1f", coord_z);}
-
-        if(x_mais == 0){mov_x_mais();
+        while(y_menos == 0){mov_y_menos();
             lcd.cls();lcd.printf("X: %4.1f", coord_x);
             lcd.locate(0,1);lcd.printf("Y: %4.1f", coord_y);
             lcd.locate(0,2);lcd.printf("Z: %4.1f", coord_z);}
             
-        if(y_mais == 0){mov_y_mais();
-            lcd.cls();lcd.printf("X: %4.1f", coord_x);
-            lcd.locate(0,1);lcd.printf("Y: %4.1f", coord_y);
-            lcd.locate(0,2);lcd.printf("Z: %4.1f", coord_z);}
-
-        if(z_mais == 0){mov_z_mais();
+        while(z_menos == 0){mov_z_menos();
             lcd.cls();lcd.printf("X: %4.1f", coord_x);
             lcd.locate(0,1);lcd.printf("Y: %4.1f", coord_y);
             lcd.locate(0,2);lcd.printf("Z: %4.1f", coord_z);}
 
-        if(x_mais || x_menos || y_mais || y_menos || z_mais || z_menos != 0){
+        while(x_mais == 0){mov_x_mais();
+            lcd.cls();lcd.printf("X: %4.1f", coord_x);
+            lcd.locate(0,1);lcd.printf("Y: %4.1f", coord_y);
+            lcd.locate(0,2);lcd.printf("Z: %4.1f", coord_z);}
+            
+        while(y_mais == 0){mov_y_mais();
+            lcd.cls();lcd.printf("X: %4.1f", coord_x);
+            lcd.locate(0,1);lcd.printf("Y: %4.1f", coord_y);
+            lcd.locate(0,2);lcd.printf("Z: %4.1f", coord_z);}
+
+        while(z_mais == 0){mov_z_mais();
+            lcd.cls();lcd.printf("X: %4.1f", coord_x);
+            lcd.locate(0,1);lcd.printf("Y: %4.1f", coord_y);
+            lcd.locate(0,2);lcd.printf("Z: %4.1f", coord_z);}
+
+        if(x_mais && x_menos && y_mais && y_menos && z_mais && z_menos != 0){
             for(int i = 0; i < 4; i++){eixox = parado[i];}
             for(int i = 0; i < 4; i++){eixoy = parado[i];}
-            for(int i = 0; i < 4; i++){eixoz = parado[i];}
-            }
-        
-        /*
-        lcd.cls();
-        lcd.printf("X: %4.1f", coord_x);
-        lcd.locate(0,1);
-        lcd.printf("Y: %4.1f", coord_y);
-        lcd.locate(0,2);
-        lcd.printf("Z: %4.1f", coord_z);
-        */
-        
-        tecla = teclado.ReadKey();
+            for(int i = 0; i < 4; i++){eixoz = parado[i];}}
+
         if(tecla =='1' && status_tela == "inicio"){
             funcao_pega1();
             wait(1);