#ifndef DS_BUTTON_H #define DS_BUTTON_H #include #ifdef STM32G030xx #include "stm32g0xx_hal.h" #endif #ifdef STM32F030xx #include "stm32f0xx_hal.h" #endif typedef struct DS_Button { GPIO_TypeDef* Port; uint16_t Pin; bool Presed, Released, PresedLong, PresedLongLong; 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_ButtonFalingEdge(DS_Button* Button); #endif //DS_BUTTON_H