Files
ESPC3-wireless/app/drivers/led_strip/led_strip.h
2025-09-15 16:47:11 +08:00

64 lines
1.7 KiB
C

#pragma once
#include <stdint.h>
#include <stdlib.h>
#include <string.h>
#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);