#pragma once #include #include #include #include "led_strip_encoder.h" #include "esp_log.h" #include "driver/rmt_tx.h" #include "freertos/FreeRTOS.h" #include "os/os.h" #include "../../config/board_config.h" #define RMT_LED_STRIP_RESOLUTION_HZ 10000000 // 10MHz resolution, 1 tick = 0.1us (led strip needs a high resolution) // #define RMT_LED_STRIP_GPIO_NUM g_cfg_board->rgb_led_pin #define RMT_LED_STRIP_GPIO_NUM 8 #define EXAMPLE_LED_NUMBERS 2 #define EXAMPLE_CHASE_SPEED_MS 10 #define WORD_TIME_MS 50 // static const char *TAG = "example"; extern rmt_channel_handle_t led_chan; extern rmt_encoder_handle_t led_encoder; extern rmt_transmit_config_t tx_config; typedef struct rgb_color_s { uint8_t index; uint8_t red; uint8_t green; uint8_t blue; uint8_t toggle_flag; uint8_t color_cnt; uint8_t colortoggle_speed; uint8_t color_type; }rgb_color_t; typedef enum { RGB_COLOR_NONE = 0, RGB_COLOR_RAD, RGB_COLOR_ORANGE, RGB_COLOR_GREEN, RGB_COLOR_WHITE, RGB_COLOR_PURPLE, RGB_COLOR_CYAN, RGB_COLOR_BLUE, RGB_COLOR_GREEN_WHITE, RGB_COLOR_GREEN_PURPLE, }RGB_COLOR; void led_strip_init(void); void led_strip_set_pixel(uint8_t pin, uint8_t index, uint8_t green, uint8_t blue, uint8_t red); void work_rgb_led_start(void); void _work_rgb_led(void *arg); void rgb_update_cyle(uint8_t index, uint16_t cyle); void rgb_toggle(uint8_t index, rgb_color_t* rgb_color); void rgb_color_change(uint8_t index, uint8_t color); void rgb_Indicator_light_on(uint8_t index, uint8_t color, uint16_t cyle); void rgb_Indicator_light_off(uint8_t index); void breathing_color_change(uint8_t index, rgb_color_t* rgb_color);