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

2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
  1. #pragma once
  2. #include "main.h"
  3. #include <stdbool.h>
  4. typedef enum
  5. {
  6. CAMERA_ENCODER = 0X00,
  7. DRIVEN_ENCODER_GEAR = 0X01,
  8. ENCODER_NUMBER,
  9. } encoder_usage_t;
  10. typedef enum
  11. {
  12. STANDBY = 0X00,
  13. WORKING = 0X01,
  14. ENCODER_STATE_NUMBER_AND_ERR_STATE,
  15. } encoder_light_state_t;
  16. typedef enum
  17. {
  18. ENCODER_LIGHT_COLOR_RED = 0X00,
  19. ENCODER_LIGHT_COLOR_GREEN = 0X01,
  20. ENCODER_LIGHT_COLOR_BLUE = 0X02,
  21. } encoder_light_color_table_t;
  22. typedef struct
  23. {
  24. TIM_HandleTypeDef *tim_handler;
  25. uint32_t tim_channel;
  26. } encoder_t;
  27. #define encoder_light_max_brightness 1000
  28. void encoder_all_start(void);
  29. void encoder_all_stop(void);
  30. bool encoder_clear_counter(encoder_usage_t encoder);
  31. void encoder_all_clear_counter(void);
  32. bool encoder_read_with_encoder(encoder_usage_t encoder, uint32_t *encoder_value);
  33. void encoder_light_schedule(void);
  34. void encoder_set_state(encoder_usage_t encoder, encoder_light_state_t state);
  35. encoder_light_state_t encoder_get_state(encoder_usage_t encoder);
  36. void encoder_all_encoder_clear_counter_and_structer_count(void);
  37. void encoder_switch_encoder_clear_count_and_structer_count(encoder_usage_t encoder);
  38. void encoder_light_switch_set_color_and_brightness(encoder_usage_t encoder, encoder_light_color_table_t color, uint16_t brightness);
  39. void encoder_switch_close_light(encoder_usage_t encoder);
  40. void encoder_switch_toggle_on_off_state(encoder_usage_t encoder);