Código para o menu no LCD

Dependencies:   mbed SDFileSystemSD TextLCD

Fork of TextLCD_HelloWorld2 by Wim Huiskamp

Revision:
34:7c7fac39a250
Parent:
33:0149960e95c1
Child:
35:11e3f3c8cb4e
--- a/main.cpp	Wed May 23 22:47:31 2018 +0000
+++ b/main.cpp	Mon May 28 12:01:21 2018 +0000
@@ -8,6 +8,9 @@
 
 Timer timer;
 Timer timer2;
+Timer enter_debounce_timer;
+Timer cima_debounce_timer;
+Timer baixo_debounce_timer;
 
 // Host PC Communication channels
 Serial pc(USBTX, USBRX); // tx, rx //não apagar
@@ -77,6 +80,9 @@
     botao_enter.rise(&botenter_release); //chama função ler timer
     botao_cima.rise(&botcima_release);
     
+    enter_debounce_timer.start(); // não apagar
+    cima_debounce_timer.start();
+    baixo_debounce_timer.start();
        
     while(1){    
         switch(menu.func){ //faz com que as telas sejam iniciadas
@@ -105,38 +111,49 @@
     }             
         
 //função interrupt botão enter        
-    void botenter_press(void){          
-          penter = bot_enter;
-          bot_enter = !bot_enter;
-          printf("enter high, timer reset FALL\n\r");
-          timer.reset();
-          timer.start();
-          }
+    void botenter_press(void){ 
+    printf("ENTER!\n\r");
+    printf("timer: %.3f\n\r", enter_debounce_timer.read());
+        if(enter_debounce_timer.read()>0.2){        
+            penter = bot_enter;
+            bot_enter = !bot_enter;
+            printf("enter high, timer reset FALL\n\r");
+            timer.reset();
+            timer.start();
+            enter_debounce_timer.reset();
+            enter_debounce_timer.start();
+            }
+        }
           
 //função interrupt botão cima          
     void botcima_press(void){
-          pcima = bot_cima;
-          bot_cima = !bot_cima;
-          printf("cima high, timer 2 reser FALL\n\r");
-          timer2.reset();
-          timer2.start();
-          }
+        printf("CIMA!\n\r");
+        printf("timer: %.3f\n\r", cima_debounce_timer.read());
+        if(cima_debounce_timer.read()>0.2){        
+            pcima = bot_cima;
+            bot_cima = !bot_cima;
+            timer2.reset();
+            timer2.start();
+            cima_debounce_timer.reset();
+            cima_debounce_timer.start();
+            }
+        }
 
 //função interrupt botão baixo          
     void botbaixo_press(void){
-          pbaixo = bot_baixo;
-          bot_baixo = !bot_baixo;
-          printf("baixo high\n\r");
-          }   
-          
+        printf("BAIXO!\n\r");
+        printf("timer: %.3f\n\r", baixo_debounce_timer.read());
+        if(baixo_debounce_timer.read()>0.2){        
+            pbaixo = bot_baixo;
+            bot_baixo = !bot_baixo;
+            baixo_debounce_timer.reset();
+            baixo_debounce_timer.start();
+            }
+        }
+        
 //função para ler o timer          
     void botenter_release(void){
         timer.stop();
-        float t = timer.read();
-        if (t>=2.0){
-             sair = 1;
-             }
-        printf("%f,%d, time stop RISE\n\r", t, sair);
         quebrar = 1;
         }
         
@@ -144,9 +161,5 @@
 //função para ler o timer 2     
     void botcima_release(void){
         timer2.stop();
-        float t2 = timer2.read();
-        if (t2>=2.0){
-            voltar = 1;
-            }
-        printf("%f,%d, timer 2 RISE\n\r", t2, voltar);
+        //printf("%f,%d, timer 2 RISE\n\r", t2, voltar);
         }
\ No newline at end of file