#pragma once #include "main.h" #include typedef enum { CAMERA_ENCODER = 0X00, DRIVEN_ENCODER_GEAR = 0X01, ENCODER_NUMBER, } encoder_usage_t; typedef enum { ENCODER_LIGHT_COLOR_RED = 0X00, ENCODER_LIGHT_COLOR_GREEN = 0X01, ENCODER_LIGHT_COLOR_BLUE = 0X02, } encoder_light_color_table_t; typedef struct { TIM_HandleTypeDef *tim_handler; uint32_t tim_channel; int32_t count; uint16_t last_count; } encoder_t; void encoder_all_start(void); void encoder_all_stop(void); void encoder_all_clear_counter(void); void encoder_switch_clear_counter(encoder_usage_t encoder); void encoder_read_with_encoder(encoder_usage_t encoder, uint32_t *encoder_value); void encoder_light_schedule(void); void encoder_light_switch_set_color(encoder_usage_t encoder, encoder_light_color_table_t color); void encoder_switch_close_light(encoder_usage_t encoder); encoder_t *encoder_get_camera_encoder_structer(void); encoder_t *encoder_get_driven_encoder_gear_structer(void);