From a40f2d7edc811267d72c0c476050d7e565342f13 Mon Sep 17 00:00:00 2001 From: realraum Date: Mon, 27 Apr 2009 00:19:27 +0000 Subject: [PATCH] manual key debounceing works now (100ms) --- firmware/tuer.pde | 17 +++++------------ 1 file changed, 5 insertions(+), 12 deletions(-) diff --git a/firmware/tuer.pde b/firmware/tuer.pde index c949297..ac1a18a 100644 --- a/firmware/tuer.pde +++ b/firmware/tuer.pde @@ -22,7 +22,7 @@ byte next_led = 0; #define MANUAL_OPEN_PIN 12 // keys for manual open and close #define MANUAL_CLOSE_PIN 13 // -#define DEBOUNCE_DELAY 625 // * 16us = 10ms +#define DEBOUNCE_DELAY 6250 // * 16us = 100ms #define DEBOUNCE_IDLE 0 // currently no debouncing #define DEBOUNCE_OPEN 1 // debouncing open key #define DEBOUNCE_CLOSE 2 // debouncing close key @@ -125,18 +125,13 @@ void stop_debounce_timer() ISR(TIMER0_COMPA_vect) { - if((debounce_state & DEBOUNCE_OPEN && manual_open_pressed()) || - (debounce_state & DEBOUNCE_CLOSE && manual_close_pressed())) { + if(((debounce_state & DEBOUNCE_OPEN) && manual_open_pressed()) || + ((debounce_state & DEBOUNCE_CLOSE) && manual_close_pressed())) { if(debounce_cnt) { debounce_cnt--; return; } debounce_state |= DEBOUNCE_FINISHED; - - if(digitalRead(HEARTBEAT_PIN)) - digitalWrite(HEARTBEAT_PIN, LOW); - else - digitalWrite(HEARTBEAT_PIN, HIGH); } debounce_cnt = DEBOUNCE_DELAY; } @@ -160,7 +155,7 @@ boolean manual_open() return true; } } - else { + else if(debounce_state & DEBOUNCE_OPEN) { stop_debounce_timer(); debounce_state = DEBOUNCE_IDLE; } @@ -187,7 +182,7 @@ boolean manual_close() return true; } } - else { + else if(debounce_state & DEBOUNCE_CLOSE) { stop_debounce_timer(); debounce_state = DEBOUNCE_IDLE; } @@ -418,13 +413,11 @@ void init_heartbeat() pinMode(HEARTBEAT_PIN, OUTPUT); reset_heartbeat(); // timer 2: ~10 ms, timebase for heartbeat signal -/* TCCR2A = 1< ~10 ms @ 16 MHz TCNT2 = 0; // reseting timer TIMSK2 = 1<