mirror of
https://github.com/clockworkpi/DevTerm.git
synced 2025-12-12 18:28:50 +01:00
mini keyboard bug fix
This commit is contained in:
parent
1c023901a7
commit
81d40799b5
@ -39,7 +39,7 @@ class DEVTERM {
|
|||||||
uint32_t delta;
|
uint32_t delta;
|
||||||
};
|
};
|
||||||
|
|
||||||
#define KEYBOARD_PULL 1 // 1 for PULLUP, 0 FOR PULLDOWN
|
#define KEYBOARD_PULL 0 // 1 for PULLUP, 0 FOR PULLDOWN
|
||||||
#define KEYBOARD_LED_PWM_PERIOD 200
|
#define KEYBOARD_LED_PWM_PERIOD 200
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
@ -60,6 +60,7 @@ void setup() {
|
|||||||
pinMode(PD2,INPUT);// switch 2 in back
|
pinMode(PD2,INPUT);// switch 2 in back
|
||||||
|
|
||||||
timer.setPeriod(KEYBOARD_LED_PWM_PERIOD);
|
timer.setPeriod(KEYBOARD_LED_PWM_PERIOD);
|
||||||
|
timer.resume();
|
||||||
|
|
||||||
pinMode(PA8,PWM);
|
pinMode(PA8,PWM);
|
||||||
pwmWrite(PA8,dev_term.Keyboard_state.backlight);
|
pwmWrite(PA8,dev_term.Keyboard_state.backlight);
|
||||||
|
|||||||
@ -115,11 +115,10 @@ uint8_t matrix_scan(void) {
|
|||||||
matrix[row] = 0;
|
matrix[row] = 0;
|
||||||
for (int col = 0; col < MATRIX_COLS; col++) {
|
for (int col = 0; col < MATRIX_COLS; col++) {
|
||||||
matrix[row] |= ((matrix_debouncing[col] & (1 << row) ? 1 : 0) << col);
|
matrix[row] |= ((matrix_debouncing[col] & (1 << row) ? 1 : 0) << col);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
keyboard_debouncing.deing = false;
|
keyboard_debouncing.deing = false;
|
||||||
|
|
||||||
}else{
|
}else{
|
||||||
delay(1);
|
delay(1);
|
||||||
}
|
}
|
||||||
@ -165,7 +164,7 @@ void matrix_release(DEVTERM*dv,uint8_t row,uint8_t col) {
|
|||||||
|
|
||||||
void keyboard_task(DEVTERM*dv)
|
void keyboard_task(DEVTERM*dv)
|
||||||
{
|
{
|
||||||
|
char buff[128];
|
||||||
uint8_t matrix_row = 0;
|
uint8_t matrix_row = 0;
|
||||||
uint8_t matrix_change = 0;
|
uint8_t matrix_change = 0;
|
||||||
uint8_t pressed = 0;
|
uint8_t pressed = 0;
|
||||||
@ -176,6 +175,8 @@ void keyboard_task(DEVTERM*dv)
|
|||||||
matrix_row = matrix_get_row(r);
|
matrix_row = matrix_get_row(r);
|
||||||
matrix_change = matrix_row ^ matrix_prev[r];
|
matrix_change = matrix_row ^ matrix_prev[r];
|
||||||
if (matrix_change) {
|
if (matrix_change) {
|
||||||
|
//sprintf(buff,"matrix_row: %d %d\n",matrix_row,matrix_prev[r]);
|
||||||
|
//dv->_Serial->print(buff);
|
||||||
uint8_t col_mask = 1;
|
uint8_t col_mask = 1;
|
||||||
for (uint8_t c = 0; c < MATRIX_COLS; c++, col_mask <<= 1) {
|
for (uint8_t c = 0; c < MATRIX_COLS; c++, col_mask <<= 1) {
|
||||||
if (matrix_change & col_mask) {
|
if (matrix_change & col_mask) {
|
||||||
|
|||||||
@ -243,12 +243,22 @@ void keyboard_action(DEVTERM*dv,uint8_t row,uint8_t col,uint8_t mode) {
|
|||||||
}
|
}
|
||||||
}break;
|
}break;
|
||||||
case _FN_LOCK_KEYBOARD:{
|
case _FN_LOCK_KEYBOARD:{
|
||||||
dv->Keyboard_state.lock = dv->Keyboard_state.lock ^ 1;
|
if(mode == KEY_PRESSED) {
|
||||||
|
dv->Keyboard_state.lock = dv->Keyboard_state.lock ^ 1;
|
||||||
|
}
|
||||||
}break;
|
}break;
|
||||||
case _FN_KEY:
|
case _FN_LIGHT_KEYBOARD: {
|
||||||
|
//dv->_Serial->println("light keyboard");
|
||||||
|
if(mode == KEY_PRESSED) {
|
||||||
|
dv->Keyboard_state.backlight = ( dv->Keyboard_state.backlight + 1) % 4;
|
||||||
|
pwmWrite(PA8,backlight[ dv->Keyboard_state.backlight ] );
|
||||||
|
//dv->_Serial->println("light keyboard");
|
||||||
|
}
|
||||||
|
}break;
|
||||||
|
case _FN_KEY:
|
||||||
if(mode == KEY_PRESSED){
|
if(mode == KEY_PRESSED){
|
||||||
dv->Keyboard_state.fn_on = FN_LAYER;
|
dv->Keyboard_state.fn_on = FN_LAYER;
|
||||||
|
//dv->_Serial->println("fn pressed");
|
||||||
|
|
||||||
}else if(mode == KEY_RELEASED ) {
|
}else if(mode == KEY_RELEASED ) {
|
||||||
//release all pressed fn keys if they still been pressing
|
//release all pressed fn keys if they still been pressing
|
||||||
@ -263,10 +273,7 @@ void keyboard_action(DEVTERM*dv,uint8_t row,uint8_t col,uint8_t mode) {
|
|||||||
dv->Keyboard_state.fn_on = 0;
|
dv->Keyboard_state.fn_on = 0;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case _FN_LIGHT_KEYBOARD: {
|
|
||||||
dev_term.Keyboard_state.backlight = (dev_term.Keyboard_state.backlight + 1) % 4;
|
|
||||||
pwmWrite(PA8,backlight[ dev_term.Keyboard_state.backlight ] );
|
|
||||||
}break;
|
|
||||||
default:
|
default:
|
||||||
if(mode == KEY_PRESSED) {
|
if(mode == KEY_PRESSED) {
|
||||||
dv->Keyboard->press(k);
|
dv->Keyboard->press(k);
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user