| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182 | #ifndef __BUTTONS_H#define __BUTTONS_H#include "at32f403a_407.h"#include <stdbool.h>// Кнопкиtypedef enum {    BUT_RESET = 0,  BUT_SET,} BUTTON_t;// Статус кнопкиtypedef enum {    BUT_ON = 0,  BUT_OFF,  BUT_NO_DEFINE,  } BUTTON_STATE_t;// Структура параметров объекта Buttontypedef struct {    gpio_type         *port;          // Порт  uint32_t 			pin;            // Пин  uint16_t          timeDelay;      // Время задержки антидребезга (время измеряется                                    // во временных интервалах с которыми вызывается                                    // обработчик кнопки  uint16_t          counterDelay;   // Счетчик антидребезга  BUTTON_STATE_t    stateOld;       // Прошлое состояние кнопки  BUTTON_STATE_t    stateNew;       // Текущее состояние кнопки  void              (*pressHandler)();   // Обработчик нажатия кнопки  void              (*unpressHandler)(uint8_t btn); // Обработчик отпускания кнопки  uint8_t           ID;             // уникальный идентификатор (можно не использовать)  uint32_t          counterActivation;  uint16_t          timeActivation_1;  uint16_t          timeActivation_2;  bool              fActivation;} BUTTON_NO_FIX_t; //void button_init(void);   /**  * @brief   Возвращает сотояние ключа  * @retval  1 - линия разомкнута  *          0 - линия замкнута  */BUTTON_STATE_t BUTTON_GetState(BUTTON_NO_FIX_t *button);bool BUTTON_GetStateInt(BUTTON_t button);/**  * @brief  Обработчик кнопки без фиксации. В обработчике реализована защита  *         от дребезга с помощью задержки. Защита срабатывает при нажатии   *         и при отпускании.  * @param *button: указатель на структуру типа BUTTON_NO_FIX  * @retval нет  */void BUTTON_NoFixHandler(BUTTON_NO_FIX_t *button);// Опрос кнопокvoid button_task(void *params);// Заглушкиvoid void_handler(void);void void_handler_btn(uint8_t btn);//void reset_handler(void);//void set_handler(uint8_t btn);#endif /* #ifndef __BUTTONS_H */
 |