|
|
@ -17,17 +17,18 @@ |
|
|
|
#include "atcmd.h" |
|
|
|
|
|
|
|
#define KEY_SCAN_PERIOD 20 |
|
|
|
#define CHEAR_ENCODER_1_KEY_NAME "Clear_Encoder_1_Key" |
|
|
|
#define CHEAR_ENCODER_2_KEY_NAME "Clear_Encoder_2_Key" |
|
|
|
|
|
|
|
static uint16_t s_key_long_press_time_ms = 3000; |
|
|
|
|
|
|
|
static inline bool clear_key_get_status() { return HAL_GPIO_ReadPin(GPIOE, GPIO_PIN_4); } |
|
|
|
static inline bool clear_encoder_1_key_get_status() { return HAL_GPIO_ReadPin(GPIOE, GPIO_PIN_4); } |
|
|
|
static inline bool clear_encoder_2_key_get_status() { return HAL_GPIO_ReadPin(GPIOE, GPIO_PIN_3); } |
|
|
|
|
|
|
|
static void onkey(zkey_t *key, zkey_state_t key_state); |
|
|
|
static zkey_t s_keys[] = { |
|
|
|
ZKEY_INIT("Clear_Key", clear_key_get_status), // |
|
|
|
// ZKEY_INIT("Signal_INT1", port_get_gpio_int1), // |
|
|
|
// ZKEY_INIT("Signal_INT2", port_get_gpio_int2), // |
|
|
|
// ZKEY_INIT("Signal_INT3", port_get_gpio_int3), // |
|
|
|
ZKEY_INIT(CHEAR_ENCODER_1_KEY_NAME, clear_encoder_1_key_get_status), // |
|
|
|
ZKEY_INIT(CHEAR_ENCODER_2_KEY_NAME, clear_encoder_2_key_get_status), // |
|
|
|
}; |
|
|
|
|
|
|
|
static zkey_module_t s_key_module = ZMODULE_INIT(s_keys, onkey); |
|
|
@ -46,8 +47,16 @@ static void onkey(zkey_t *key, zkey_state_t key_state) |
|
|
|
{ |
|
|
|
if (key_state == zks_rising_edge) |
|
|
|
{ |
|
|
|
encoder_all_clear_counter(); |
|
|
|
printf("clear encoder count\r\n"); |
|
|
|
if (strcmp(key->name, CHEAR_ENCODER_1_KEY_NAME) == 0) |
|
|
|
{ |
|
|
|
encoder_clear_counter(CAMERA_ENCODER); |
|
|
|
printf("clear encoder 1 count\r\n"); |
|
|
|
} |
|
|
|
else if (strcmp(key->name, CHEAR_ENCODER_2_KEY_NAME) == 0) |
|
|
|
{ |
|
|
|
encoder_clear_counter(DRIVEN_ENCODER_GEAR); |
|
|
|
printf("clear encoder 2 count\r\n"); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
if (key_state == zks_keep) |
|
|
|