2 Motores + Joystick

Dependencies:   X_NUCLEO_IHM01A1 TextLCD

Fork of HelloWorld_IHM01A1_2Motors_mbedOS by ST

Files at this revision

API Documentation at this revision

Comitter:
digo1234
Date:
Tue May 22 18:43:54 2018 +0000
Parent:
55:b2ad60cc21a1
Child:
57:270b6c82d071
Commit message:
IHM integrada sem pular os botoes;

Changed in this revision

main.cpp Show annotated file Show diff for this revision Revisions of this file
--- a/main.cpp	Tue May 22 17:17:58 2018 +0000
+++ b/main.cpp	Tue May 22 18:43:54 2018 +0000
@@ -53,8 +53,8 @@
 /* includes para os lcds */
 #include "TextLCD.h"
 /* definindo apertado e solto para lcd */
-#define apertado 0
-#define solto 1
+#define apertado 1
+#define solto 0
 
 
 /* Definitions ---------------------------------------------------------------*/
@@ -145,6 +145,8 @@
 bool flagX1=0; 
 bool flagY1=0; 
 
+int safe = 0;
+
 unsigned int minspeed = 1300;
 
 //int step = 0x08;
@@ -319,6 +321,9 @@
             lcd.printf("2-INICIAR PROGRAMA");
  
     while(true) {
+        if (!botao1 && !botao2 && !botao3 && !botao4){
+            safe = 0;
+            }
         count = count +1;
         // Leitura analógica
         u = eixo_X.read();
@@ -449,24 +454,38 @@
                     }
                }
 // vai caminho de um programa ja salvo depois do menu inicial     
-    if (botao2 && menu==0) {
+    if (botao2 && menu==0 && safe == 0) {
         lcd.cls();
+        if (listaX[0]==0&& listaY[0]==0 && listaZ[0]==0){
+            lcd.setAddress(0,0);
+            lcd.printf("NAO HA PONTOS SALVOS");
+            wait(2);
+            lcd.cls();
+            lcd.setAddress(3,0);
+            lcd.printf("MENU PRINCIPAL");
+            lcd.setAddress(0,2);
+            lcd.printf("1-SALVAR PONTOS");
+            lcd.setAddress(0,3);
+            lcd.printf("2-INICIAR PROGRAMA");
+            menu=0;
+            }
+        else {    
         lcd.setAddress(0,0);
         lcd.printf("AGUARDE...");
         vai_caminho_desejado(listaX, listaY, listaZ, index);
         wait_ms(DELAY_2);
         lcd.cls();
-         lcd.setAddress(3,0);
+        lcd.setAddress(3,0);
         lcd.printf("MENU PRINCIPAL");
         lcd.setAddress(0,2);
         lcd.printf("1-SALVAR PONTOS");
         lcd.setAddress(0,3);
         lcd.printf("2-INICIAR PROGRAMA"); 
         menu=0;
-      
+        }
         }
 // vai para tela de salvar pontos       
-    if (botao1 && menu == 0){
+    if (botao1 && menu == 0 && safe == 0){
         for (int i=0; i<11;i++){
             listaX[i] = 0;
             listaY[i] = 0;
@@ -484,11 +503,12 @@
         lcd.printf("3-CANCELAR ");
         lcd.setAddress(0,3);
         lcd.printf("4-CONCLUIR ");
+        safe = 1;
         wait_ms(DELAY_2);
         }
  
 // salva pontos       
-    if (botao1 && menu>0 && menu <99){
+    if (botao1 && menu>0 && menu <99 && safe ==0){
             lcd.cls();
             salva_posicao();
             lcd.setCursor(TextLCD::CurOff_BlkOff);
@@ -501,9 +521,10 @@
             lcd.setAddress(0,3);
             lcd.printf("4-CONCLUIR ");
             menu=menu+1;
+            safe=1;
         }
 // descarta último ponto      
-    if (botao2 && menu>1 && menu <99){
+    if (botao2 && menu>1 && menu <99 && safe == 0){
             lcd.cls();  
             listaX[index] = 0;
             listaY[index] = 0;
@@ -519,9 +540,10 @@
             lcd.printf("3-CANCELAR ");
             lcd.setAddress(0,3);
             lcd.printf("4-CONCLUIR ");
+            safe = 1;
         }
 // cancelar operação (ainda pode voltar atras)
-    if (botao3 && menu>0){
+    if (botao3 && menu>0 && safe == 0){
             lcd.cls();
             lcd.setAddress(2,0);
             lcd.printf("TEM CERTEZA QUE");
@@ -534,9 +556,10 @@
             lcd.setAddress(10,4);
             lcd.printf("2-NAO");
             menu=100;
+            safe = 1;
         }
 // volta da tela de salvar pontos1 para o menu principal
-    if (botao2 && menu==1){
+    if (botao2 && menu==1 && safe == 0){
             lcd.cls();
             menu=0;
             lcd.setAddress(3,0);
@@ -545,9 +568,10 @@
             lcd.printf("1-SALVAR PONTOS");
             lcd.setAddress(0,3);
             lcd.printf("2-INICIAR PROGRAMA");  
+            safe = 1;
             }
 // cancela a operação em definitivo e vai para o menu principal
-    if (botao1 && menu==100){
+    if (botao1 && menu==100 && safe == 0){
         for (int i=0; i<11;i++){
             listaX[i] = 0;
             listaY[i] = 0;
@@ -562,9 +586,10 @@
             lcd.setAddress(0,3);
             lcd.printf("2-INICIAR PROGRAMA"); 
             menu=0;
+            safe = 1;
             } 
 // desiste de cancelar a operação e volta a tela de salvar pontos
-    if (botao2 && menu==100){
+    if (botao2 && menu==100 && safe == 0){
             lcd.cls();
             menu=index;
             lcd.setCursor(TextLCD::CurOff_BlkOff);
@@ -576,9 +601,10 @@
             lcd.printf("3-CANCELAR ");
             lcd.setAddress(0,3);
             lcd.printf("4-CONCLUIR ");
+            safe = 1;
             } 
 // vai para tela de salvar ponto de retirada
-    if (botao4 && menu>0){
+    if (botao4 && menu>0 && safe == 0){
             lcd.cls();
             lcd.setAddress(0,0);
             lcd.printf("PONTOS SALVOS");
@@ -587,9 +613,10 @@
             lcd.setAddress(0,3);
             lcd.printf("2-VOLTAR A SALVAR");
             menu=200;
+            safe = 1;
         }  
 // salva ponto de retirada         
-    if (botao1 && menu==200){
+    if (botao1 && menu==200 && safe == 0){
             lcd.cls();
             lcd.setAddress(0,0);
             lcd.printf("SALVE SEU PONTO");
@@ -598,9 +625,10 @@
             lcd.setAddress(0,4);
             lcd.printf("1-SALVAR PONTO");
             menu= 201;
+            safe = 1;
         }    
 // volta a salvar pontos        
-    if (botao2 && menu==200){
+    if (botao2 && menu==200 && safe == 0){
             lcd.cls();
             menu=index;
             lcd.setCursor(TextLCD::CurOff_BlkOff);
@@ -612,10 +640,11 @@
             lcd.printf("3-CANCELAR ");
             lcd.setAddress(0,3);
             lcd.printf("4-CONCLUIR ");
+            safe = 1;
             } 
                     
 // executa o programa e volta para tela inicial         
-    if (botao1 && menu==201){
+    if (botao1 && menu==201 && safe == 0){
         salva_posicao();
         lcd.cls();
         lcd.setAddress(0,0);
@@ -639,7 +668,7 @@
         lcd.setAddress(0,3);
         lcd.printf("2-INICIAR PROGRAMA"); 
         menu=0;
-        
+        safe = 1;
         }