2 Motores + Joystick
Dependencies: X_NUCLEO_IHM01A1 TextLCD
Fork of HelloWorld_IHM01A1_2Motors_mbedOS by
Revision 56:5aedf3b4e184, committed 2018-05-22
- 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;
}
