123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960 |
- #ifndef __BUTTON_H
- #define __BUTTON_H
- #include "stm32f0xx_hal.h"
- #include <stdbool.h>
- #define UPDATE_BUT_DELLAY (20)
- // Статус кнопки
- typedef enum
- {
- BUT_ON = 0,
- BUT_OFF,
- BUT_NO_DEFINE,
-
- } BUTTON_STATE_t;
- //
- typedef struct
- {
- GPIO_TypeDef* GPIOx; // Порт
- uint16_t GPIO_Pin; // Пин
- uint16_t timeDelay; // Время задержки антидребезга (время измеряется
- // во временных интервалах с которыми вызывается
- // обработчик кнопки
- uint16_t counterDelay; // Счетчик антидребезга
- BUTTON_STATE_t stateOld; // Прошлое состояние кнопки
- BUTTON_STATE_t stateNew; // Текущее состояние кнопки
- void (*pressHandler)(); // Обработчик нажатия кнопки
- void (*unpressHandler)(); // Обработчик отпускания кнопки
- uint8_t ID; // уникальный идентификатор (можно не использовать)
- uint32_t counterActivation;
- uint16_t timeActivation;
- bool fActivation;
-
- } but_no_fix_t;
- //
- void but_init(void);
- //
- void button_run(void);
- //
- void bu_no_fix_handler(but_no_fix_t* button);
- //
- BUTTON_STATE_t but_get_state(but_no_fix_t *button);
- //
- bool but_is_string(void);
- extern bool start_pressed;
- #endif // __BUTTON_H
|