Files
fdskey/FdsKey_bootloader/Core/Src/buttons.c
Alexey 'Cluster' Avdyukhin 946aa4f8d2 Fixes
2023-07-20 19:00:48 +04:00

66 lines
1.6 KiB
C

#include "main.h"
#include "buttons.h"
#include "settings.h"
static uint8_t up_pressed = 0;
static uint8_t down_pressed = 0;
static uint8_t left_pressed = 0;
static uint8_t right_pressed = 0;
uint8_t button_up_holding()
{
uint8_t v = !HAL_GPIO_ReadPin(!fdskey_settings.lefty_mode ? BUTTON_UP_GPIO_Port : BUTTON_DOWN_GPIO_Port, !fdskey_settings.lefty_mode ? BUTTON_UP_Pin : BUTTON_DOWN_Pin);
return v;
}
uint8_t button_down_holding()
{
uint8_t v = !HAL_GPIO_ReadPin(!fdskey_settings.lefty_mode ? BUTTON_DOWN_GPIO_Port : BUTTON_UP_GPIO_Port, !fdskey_settings.lefty_mode ? BUTTON_DOWN_Pin : BUTTON_UP_Pin);
return v;
}
uint8_t button_left_holding()
{
uint8_t v = !HAL_GPIO_ReadPin(!fdskey_settings.lefty_mode ? BUTTON_LEFT_GPIO_Port : BUTTON_RIGHT_GPIO_Port, !fdskey_settings.lefty_mode ? BUTTON_LEFT_Pin : BUTTON_RIGHT_Pin);
return v;
}
uint8_t button_right_holding()
{
uint8_t v = !HAL_GPIO_ReadPin(!fdskey_settings.lefty_mode ? BUTTON_RIGHT_GPIO_Port : BUTTON_LEFT_GPIO_Port, !fdskey_settings.lefty_mode ? BUTTON_RIGHT_Pin : BUTTON_LEFT_Pin);
return v;
}
uint8_t button_up_newpress()
{
uint8_t v = button_up_holding();
uint8_t newpress = v && !up_pressed;
up_pressed = v;
return newpress;
}
uint8_t button_down_newpress()
{
uint8_t v = button_down_holding();
uint8_t newpress = v && !down_pressed;
down_pressed = v;
return newpress;
}
uint8_t button_left_newpress()
{
uint8_t v = button_left_holding();
uint8_t newpress = v && !left_pressed;
left_pressed = v;
return newpress;
}
uint8_t button_right_newpress()
{
uint8_t v = button_right_holding();
uint8_t newpress = v && !right_pressed;
right_pressed = v;
return newpress;
}