From d1f1128f6a1d50f53b94b20488a010273100b4e2 Mon Sep 17 00:00:00 2001 From: Jacob Alexander Date: Wed, 6 Apr 2011 12:30:32 -0700 Subject: [PATCH] Correcting debounce issues. --- main.c | 12 +++--------- 1 file changed, 3 insertions(+), 9 deletions(-) diff --git a/main.c b/main.c index 3271b54..7c0c195 100644 --- a/main.c +++ b/main.c @@ -118,10 +118,12 @@ // Drive Macros (Generally don't need to be changed), except for maybe DRIVE_DETECT +// Sleep is for signal debouncing #define DRIVE_DETECT(reg,pin,group) \ reg &= ~(1 << pin); \ detection(group); \ - reg |= (1 << pin); + reg |= (1 << pin); \ + _delay_us(1); #define DD_CASE(number) \ case number:\ @@ -376,14 +378,6 @@ int main( void ) if ( !sendKeypresses ) continue; - - // XXX TODO HACK REMOVEME KILL_WITH_FIRE - // Too lazy to find (electrical?) issue, so I'm adding a software fix (case is impossible anyways without moar diodes) - if ( keyDetectArray[20] & (1 << 7) && keyDetectArray[21] & (1 << 7) && keyDetectArray[38] & (1 << 7) ) { - keyDetectArray[20] &= ~(1 << 7); - print("HACK!! - Fixme sometime"); - } - // Detect Valid Keypresses - TODO uint8_t validKeys = 0;