Merge branch 'master' of github.com:kiibohd/controller
This commit is contained in:
commit
a848a6bc79
26 changed files with 466 additions and 43 deletions
|
@ -1,4 +1,4 @@
|
|||
/* Copyright (C) 2014-2015 by Jacob Alexander
|
||||
/* Copyright (C) 2014-2016 by Jacob Alexander
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
* of this software and associated documentation files (the "Software"), to deal
|
||||
|
@ -452,7 +452,7 @@ void Matrix_scan( uint16_t scanNum )
|
|||
|
||||
|
||||
// Matrix ghosting check and elimination
|
||||
// . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
|
||||
// . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
|
||||
#ifdef GHOSTING_MATRIX
|
||||
// strobe = column, sense = row
|
||||
|
||||
|
@ -489,7 +489,7 @@ void Matrix_scan( uint16_t scanNum )
|
|||
row_use[row] = used;
|
||||
row_ghost[row] = 0; // clear
|
||||
}
|
||||
|
||||
|
||||
// Check if matrix has ghost
|
||||
// Happens when key is pressed and some other key is pressed in same row and another in same column
|
||||
//print(" G ");
|
||||
|
@ -518,10 +518,10 @@ void Matrix_scan( uint16_t scanNum )
|
|||
uint8_t key = Matrix_colsNum * row + col;
|
||||
KeyState *state = &Matrix_scanArray[ key ];
|
||||
KeyGhost *st = &Matrix_ghostArray[ key ];
|
||||
|
||||
|
||||
// col or row is ghosting (crossed)
|
||||
uint8_t ghost = (col_ghost[col] > 0 || row_ghost[row] > 0) ? 1 : 0;
|
||||
|
||||
|
||||
st->prev = st->cur; // previous
|
||||
// save state if no ghost or outside ghosted area
|
||||
if ( ghost == 0 )
|
||||
|
@ -529,16 +529,16 @@ void Matrix_scan( uint16_t scanNum )
|
|||
// final
|
||||
// use saved state if ghosting, or current if not
|
||||
st->cur = ghost > 0 ? st->saved : state->curState;
|
||||
|
||||
|
||||
// Send keystate to macro module
|
||||
KeyPosition k = !st->cur
|
||||
KeyPosition k = !st->cur
|
||||
? (!st->prev ? KeyState_Off : KeyState_Release)
|
||||
: ( st->prev ? KeyState_Hold : KeyState_Press);
|
||||
Macro_keyState( key, k );
|
||||
}
|
||||
}
|
||||
#endif
|
||||
// . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
|
||||
// . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
|
||||
|
||||
|
||||
// State Table Output Debug
|
||||
|
@ -587,6 +587,15 @@ void Matrix_scan( uint16_t scanNum )
|
|||
}
|
||||
|
||||
|
||||
// Called by parent scan module whenever the available current changes
|
||||
// current - mA
|
||||
void Matrix_currentChange( unsigned int current )
|
||||
{
|
||||
// TODO - Any potential power savings?
|
||||
}
|
||||
|
||||
|
||||
|
||||
// ----- CLI Command Functions -----
|
||||
|
||||
void cliFunc_matrixDebug ( char* args )
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/* Copyright (C) 2014-2015 by Jacob Alexander
|
||||
/* Copyright (C) 2014-2016 by Jacob Alexander
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
* of this software and associated documentation files (the "Software"), to deal
|
||||
|
@ -158,3 +158,5 @@ inline uint8_t keyOn(/*KeyPosition*/uint8_t st)
|
|||
void Matrix_setup();
|
||||
void Matrix_scan( uint16_t scanNum );
|
||||
|
||||
void Matrix_currentChange( unsigned int current );
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue