Testing keyboard poll

This commit is contained in:
2022-10-29 05:33:59 +03:00
parent 35b78ff656
commit 333a945cd6
6 changed files with 77 additions and 8 deletions

View File

@@ -0,0 +1,53 @@
/*
* inputs.c
*
* Created on: Oct 29, 2022
* Author: mcfly
*/
#include "inputs.h"
#include "st7789.h"
#define BTNPRT GPIOC
#define ENCBTNPRT BGIOB
#define ENCBTNPRTMASK 0b11001000
#define SCRBTNPRT BGIOD
#define SCRBTNPRTMASK 0b1110000
void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim) {
static uint16_t btnbuff = 0xFFFF;
static uint16_t btnprev = 0xFFFF;
uint8_t i;
uint16_t pin;
GPIO_TypeDef *port;
//check if the interrupt comes from TIM6
if(htim->Instance == TIM6) {
btnbuff = BTNPRT->IDR;
for (i=5; i>=2; i--) {
if ( !((btnbuff>>i) & 1) && ((btnprev>>i) & 1) ) {
switch (i) {
case 5:
port = CH1_EN_GPIO_Port;
pin = CH1_EN_Pin;
break;
case 4:
port = CH2_EN_GPIO_Port;
pin = CH2_EN_Pin;
break;
case 3:
port = PWM1_EN_GPIO_Port;
pin = PWM1_EN_Pin;
break;
case 2:
port = PWM2_EN_GPIO_Port;
pin = PWM2_EN_Pin;
break;
}
HAL_GPIO_TogglePin(port, pin);
}
}
btnprev = btnbuff;
}
}