【PWM方波】

发布时间:2026/5/21 19:08:35

【PWM方波】 一、方波(PWM)配置 RH850 使用TAUD0/TAUD1定时器阵列单元实现 PWM 方波输出。1.关键寄存器配置/* 预分频器时钟选择寄存器 */#define E_PWM_TPS_INIT (0x3000u)/* xxxx 0000 0000 0000 TAUDnPRS3 CK3_PRE 时钟指定 *//* 0000 xxxx 0000 0000 TAUDnPRS2 CK2 时钟指定 *//* 0000 0000 xxxx 0000 TAUDnPRS1 CK1 时钟指定 *//* 0000 0000 0000 xxxx TAUDnPRS0 CK0 时钟指定 *//* 预分频器波特率设定寄存器 */#define E_PWM_BRS_INIT (0x09u)/* Master通道模式寄存器(决定PWM周期)*/#define E_PWM_MASTER_CMOR_INIT (0xc801u)/* Slave通道模式寄存器(决定PWM占空比)*/#define E_PWM_SLAVE_CMOR_INIT (0xc409u)2.通道分配(方波输出)/* TAUD0 通道配置 */{ 0, 0, 1, TAUD0.CMOR0/CMOR1, CDR0/CDR1 } /* BSW LED1 PWM输出 */{ 0, 8, 9, TAUD0.CMOR8/CMOR9, CDR8/CDR9 } /* 死区开关 LED PWM输出 */{ 0, 10, 11, TAUD0.CMOR10/CMOR11,CDR10/CDR11} /* 自动停车开关 LED PWM输出 */3. PWM 工作原理Master通道(偶数)→ 设定PWM周期Slave通道(奇数) → 设定PWM占空比方波输出: ┌──┐ ┌──┐ ┌──┐────┘ └────┘ └────┘ └──|周期T||占空比|二、正弦波配置说明当前工程中 RH850 硬件层没有直接的正弦波生成配置。正弦波通常通过以下方式实现:方式1:DAC(数模转换器)直接输出RH850 P1MC 内置 DAC,但当前工程代码中未发现相关配置文件。方式2:PWM + 低通滤波器(软件方式)方式3:TAUD 模式寄存器配置/* TAUDnMD(动作模式位)可配置为 *//* 0x00: 区间定时器模式 → 方波 *//* 0x02: PWM模式 → 方波(可变占空比) *//* 0x09: 连动PWM模式 → 当前工程使用 */代码实现:一、初始化配置流程void pwm_init(const uchar enable[]){ sint lch; ushort val[3] = {0x0000u, 0x0000u, 0x0000u};/

相关新闻