You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

46 lines
1.4 KiB

#pragma once
#include "main.h"
#include <stdbool.h>
typedef enum
{
CAMERA_ENCODER = 0X00,
DRIVEN_ENCODER_GEAR = 0X01,
ENCODER_NUMBER,
} encoder_usage_t;
typedef enum
{
STANDBY = 0X00,
WORKING = 0X01,
ENCODER_STATE_NUMBER_AND_ERR_STATE,
} encoder_light_state_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;
} encoder_t;
#define encoder_light_max_brightness 1000
void encoder_all_start(void);
void encoder_all_stop(void);
bool encoder_clear_counter(encoder_usage_t encoder);
void encoder_all_clear_counter(void);
bool encoder_read_with_encoder(encoder_usage_t encoder, uint32_t *encoder_value);
void encoder_light_schedule(void);
void encoder_set_state(encoder_usage_t encoder, encoder_light_state_t state);
encoder_light_state_t encoder_get_state(encoder_usage_t encoder);
void encoder_all_encoder_clear_counter_and_structer_count(void);
void encoder_switch_encoder_clear_count_and_structer_count(encoder_usage_t encoder);
void encoder_light_switch_set_color_and_brightness(encoder_usage_t encoder, encoder_light_color_table_t color, uint16_t brightness);
void encoder_switch_close_light(encoder_usage_t encoder);
void encoder_switch_toggle_on_off_state(encoder_usage_t encoder);