Files
DS_Button/Inc/DS_Button.h

47 lines
910 B
C

#ifndef DS_BUTTON_H
#define DS_BUTTON_H
#include <stdbool.h>
#ifdef STM32G030xx
#include "stm32g0xx_hal.h"
#endif
#ifdef STM32G0B1xx
#include "stm32g0xx_hal.h"
#endif
#ifdef STM32F030xx
#include "stm32f0xx_hal.h"
#endif
typedef struct DS_Button
{
GPIO_TypeDef* Port;
uint16_t Pin;
bool Pressed, Released, PressedLong, PressedLongLong;
uint32_t PrevTick, PressStartTick, PressStartTickLong;
uint8_t Storage;
bool FallingEdge, RisingEdge;
}DS_Button;
void DS_ButtonInit(DS_Button* Button, GPIO_TypeDef* Port, uint16_t Pin);
void DS_ButtonUpdate(DS_Button* Button);
bool DS_ButtonPressed(DS_Button* Button);
bool DS_ButtonReleased(DS_Button* Button);
bool DS_ButtonPressedLong(DS_Button* Button);
bool DS_ButtonPressedLongLong(DS_Button* Button);
bool DS_ButtonRisingEdge(DS_Button* Button);
bool DS_ButtonFallingEdge(DS_Button* Button);
#endif //DS_BUTTON_H