Files
SigGen/firmware/Core/Src/inputs.c
2022-10-29 05:33:59 +03:00

54 lines
1.0 KiB
C

/*
* 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;
}
}