/** * PWM 输出与 LED 控制模块 * TIM3 CH1/CH2/CH3 -> PC6/PC7/PC8 (LED 指示灯) * TIM4 CH3/CH4 -> PB8/PB9 (PWM_OUT1/2, 可配置 WS2812/LED/振动) */ #ifndef PWM_H #define PWM_H #include "main.h" #include "tim.h" #include "config.h" /* PWM 输出模式 */ #define PWM_MODE_DISABLED 0 #define PWM_MODE_WS2812 1 #define PWM_MODE_LED 2 #define PWM_MODE_VIBRATE 3 /* WS2812 模式 */ #define WS2812_MODE_RAINBOW_BREATH 0 #define WS2812_MODE_COLOR_FLOW 1 #define WS2812_MODE_SINGLE_FLOW 2 #define WS2812_MODE_SINGLE_BREATH 3 #define WS2812_MODE_GRADIENT 4 #define WS2812_MODE_STROBE 5 #define WS2812_MODE_COUNT 6 /* LED 模式 */ #define LED_MODE_BREATH 0 #define LED_MODE_CONSTANT 1 /* 振动档位 */ #define VIBRATE_LEVEL_MIN 1 #define VIBRATE_LEVEL_MAX 9 /* 函数声明 */ void PWM_Init(void); /* LED 指示灯控制 */ void LED_SetSystem(uint8_t on); /* 系统状态 LED (PC6) */ void LED_SetNRF(uint8_t mode); /* NRF 状态 LED (PC7): 0=慢闪,1=快闪,2=常亮,3=灭 */ void LED_SetCRFS(uint8_t mode); /* CRFS 状态 LED (PC8) */ void LED_Update(void); /* 每 10ms 调用, 更新 LED 闪烁 */ /* PWM 输出控制 */ void PWM_SetMode(uint8_t ch, uint8_t mode); /* ch: 0=PWM_OUT1, 1=PWM_OUT2 */ void PWM_SetWS2812Mode(uint8_t mode); /* 设置 WS2812 效果模式 */ void PWM_SetLEDBrightness(uint8_t brightness); /* 0-100 */ void PWM_SetVibrateLevel(uint8_t level); /* 1-9 */ /* 配置存储 */ extern uint8_t pwm1_mode; extern uint8_t pwm2_mode; extern uint8_t ws2812_effect; extern uint8_t led_brightness; extern uint8_t vibrate_level; #endif /* PWM_H */