Handle buttons & encoders in View, not Model
This commit is contained in:
24
Core/Inc/STWButtonController.hpp
Normal file
24
Core/Inc/STWButtonController.hpp
Normal file
@ -0,0 +1,24 @@
|
||||
#ifndef __INC_STW_BUTTON_CONTROLLER_HPP
|
||||
#define __INC_STW_BUTTON_CONTROLLER_HPP
|
||||
|
||||
#include "platform/driver/button/ButtonController.hpp"
|
||||
#include <stdint.h>
|
||||
|
||||
constexpr uint8_t KEY_BTN1 = 1;
|
||||
constexpr uint8_t KEY_BTN2 = 2;
|
||||
constexpr uint8_t KEY_BTN3 = 3;
|
||||
constexpr uint8_t KEY_BTN4 = 4;
|
||||
constexpr uint8_t KEY_BTN5 = 5;
|
||||
constexpr uint8_t KEY_BTN6 = 6;
|
||||
constexpr uint8_t KEY_ENC1_CW = 21;
|
||||
constexpr uint8_t KEY_ENC1_CCW = 22;
|
||||
constexpr uint8_t KEY_ENC2_CW = 23;
|
||||
constexpr uint8_t KEY_ENC2_CCW = 24;
|
||||
|
||||
class STWButtonController : public touchgfx::ButtonController {
|
||||
public:
|
||||
virtual void init();
|
||||
virtual bool sample(uint8_t &key);
|
||||
};
|
||||
|
||||
#endif // __INC_STW_BUTTON_CONTROLLER_HPP
|
||||
@ -42,7 +42,7 @@ extern "C" {
|
||||
/* Exported constants --------------------------------------------------------*/
|
||||
/* USER CODE BEGIN EC */
|
||||
extern volatile int ltdc_cb_triggered;
|
||||
extern TX_QUEUE ui_queue;
|
||||
extern TX_QUEUE gui_button_queue;
|
||||
/* USER CODE END EC */
|
||||
|
||||
/* Exported macro ------------------------------------------------------------*/
|
||||
@ -62,16 +62,12 @@ void Error_Handler(void);
|
||||
/* Private defines -----------------------------------------------------------*/
|
||||
#define ENC1A_Pin GPIO_PIN_3
|
||||
#define ENC1A_GPIO_Port GPIOE
|
||||
#define ENC1A_EXTI_IRQn EXTI3_IRQn
|
||||
#define ENC1B_Pin GPIO_PIN_4
|
||||
#define ENC1B_GPIO_Port GPIOE
|
||||
#define ENC1B_EXTI_IRQn EXTI4_IRQn
|
||||
#define ENC2A_Pin GPIO_PIN_5
|
||||
#define ENC2A_GPIO_Port GPIOE
|
||||
#define ENC2A_EXTI_IRQn EXTI9_5_IRQn
|
||||
#define ENC2B_Pin GPIO_PIN_6
|
||||
#define ENC2B_GPIO_Port GPIOE
|
||||
#define ENC2B_EXTI_IRQn EXTI9_5_IRQn
|
||||
#define BTN1_Pin GPIO_PIN_0
|
||||
#define BTN1_GPIO_Port GPIOF
|
||||
#define BTN2_Pin GPIO_PIN_1
|
||||
|
||||
@ -12,12 +12,12 @@ extern "C" {
|
||||
#define BUTTON_MIN_PRESS_TIME 50 // ms
|
||||
#define ENC_MAX_PHASE 50 // ms
|
||||
|
||||
typedef enum { UMK_BTN_RELEASED, UMK_ENC_CW, UMK_ENC_CCW } UIMessageKind;
|
||||
typedef enum { UMK_BTN_RELEASED, UMK_ENC_CW, UMK_ENC_CCW } ButtonMessageKind;
|
||||
|
||||
typedef struct {
|
||||
UIMessageKind kind;
|
||||
ButtonMessageKind kind;
|
||||
int number;
|
||||
} UIMessage;
|
||||
} ButtonMessage;
|
||||
|
||||
void ui_thread_entry(ULONG _);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user