54 lines
1.0 KiB
C
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;
|
|
}
|
|
|
|
}
|
|
|