Código para o menu no LCD
Dependencies: mbed SDFileSystemSD TextLCD
Fork of TextLCD_HelloWorld2 by
Diff: main.cpp
- 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