/**
 * @file pwm_output.h
 * @brief PWM 输出控制：5 路占空比设置
 *
 * 输出引脚：
 *   OUT_R: P23 → ATIM CH1
 *   OUT_G: P24 → ATIM CH2
 *   OUT_B: P25 → ATIM CH3
 *   OUT_W: P26 → BTIM0 CH1
 *   OUT_C: P27 → BTIM1 CH1
 *
 * PWM 频率：2kHz（可调，推荐 1kHz ~ 4kHz 用于 LED 驱动）
 */

#ifndef PWM_OUTPUT_H
#define PWM_OUTPUT_H

#include <stdint.h>

/**
 * @brief 初始化 5 路 PWM 输出定时器
 *
 * DDL 调用：
 *   ATIM_Init(...)       — 初始化高级定时器，配置 PWM 模式，3 通道
 *   BTIM0_Init(...)      — 初始化基本定时器 0，配置 PWM 模式，1 通道
 *   BTIM1_Init(...)      — 初始化基本定时器 1，配置 PWM 模式，1 通道
 *   Gpio_SetFunc(P23...) — 配置引脚为定时器 PWM 复用功能
 */
void PwmOutput_Init(void);

/**
 * @brief 设置 5 路 PWM 占空比
 * @param r  OUT_R 占空比 (0-255)
 * @param g  OUT_G 占空比 (0-255)
 * @param b  OUT_B 占空比 (0-255)
 * @param w  OUT_W 占空比 (0-255)
 * @param c  OUT_C 占空比 (0-255)
 *
 * DDL 调用：
 *   ATIM_SetCH1Compare(val)  — 设置 ATIM CH1 比较值（OUT_R）
 *   ATIM_SetCH2Compare(val)  — 设置 ATIM CH2 比较值（OUT_G）
 *   ATIM_SetCH3Compare(val)  — 设置 ATIM CH3 比较值（OUT_B）
 *   BTIM0_SetCompare(val)    — 设置 BTIM0 比较值（OUT_W）
 *   BTIM1_SetCompare(val)    — 设置 BTIM1 比较值（OUT_C）
 */
void PwmOutput_Set(uint8_t r, uint8_t g, uint8_t b, uint8_t w, uint8_t c);

#endif /* PWM_OUTPUT_H */
