Browse Source

Correcting debounce issues.

simple
Jacob Alexander 13 years ago
parent
commit
d1f1128f6a
1 changed files with 3 additions and 9 deletions
  1. 3
    9
      main.c

+ 3
- 9
main.c View File





// Drive Macros (Generally don't need to be changed), except for maybe DRIVE_DETECT // 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) \ #define DRIVE_DETECT(reg,pin,group) \
reg &= ~(1 << pin); \ reg &= ~(1 << pin); \
detection(group); \ detection(group); \
reg |= (1 << pin);
reg |= (1 << pin); \
_delay_us(1);


#define DD_CASE(number) \ #define DD_CASE(number) \
case number:\ case number:\
if ( !sendKeypresses ) if ( !sendKeypresses )
continue; 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 // Detect Valid Keypresses - TODO
uint8_t validKeys = 0; uint8_t validKeys = 0;