From d1f1128f6a1d50f53b94b20488a010273100b4e2 Mon Sep 17 00:00:00 2001
From: Jacob Alexander <triplehaata@gmail.com>
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;
 
-- 
2.39.5