- 打卡等级:以坛为家I
- 打卡总天数:385
- 最近打卡:2025-05-01 08:05:45
高级会员
- 积分
- 725
|
如题:
硬件板子已经做了 是通过端口P26 , PWMA4P 和端口P27 PWMA4N。原本是通过这两个端口分别输出不同频率和占空比的波形。
但是现在我程序频率和占空比没办法单独设置。两个端口输出一直是同步。
如果共同使用PWMA定时器。频率只能一样。那么占空比是否可以单独调节?
看使用手册 云里雾里搞不清楚。
高手指导一下。
void PWMA_config(void)
{
P_SW2 |= 0x80; //SFR enable
PWMA_ENO = 0; // IO输出禁止
PWMA_IER = 0; // 禁止中断
PWMA_SR1 = 0; // 清除状态
PWMA_SR2 = 0; // 清除状态
PWMA_PSCRH = 0x00; // 预分频寄存器, 分频 Fck_cnt = Fck_psc/(PSCR[15:0}+1), 边沿对齐PWM频率 = SYSclk/((PSCR+1)*(AAR+1)), 中央对齐PWM频率 // = SYSclk/((PSCR+1)*(AAR+1)*2).
PWMA_PSCRL = 0x00;
PWMA_ARRH = 2400/256; // 自动重装载寄存器, 控制PWM周期
PWMA_ARRL = 2400%256;
PWMA_CCMR4 = 0x68; // 通道模式配置, PWM模式1, 预装载允许
PWMA_CCR4H = 1600/256; // 比较值, 控制占空比(高电平时钟数)
PWMA_CCR4L = 1600%256;
PWMA_CCER1 = 0x00; // 捕获/比较使能寄存器1
PWMA_CCER2 |= 0x50; // 捕获/比较使能寄存器2
PWMA_PS = |= (1<<6); // 选择IO
PWMA_IER = 0; //设置允许通道1~4中断处理
PWMA_BKR = 0x80; // 主输出使能 相当于总开关
PWMA_CR1 = 0x81; // 使能计数器, 允许自动重装载寄存器缓冲, 边沿对齐模式, 向上计数,
PWMA_EGR = 0x01; //产生一次更新事件, 清除计数器和预分频计数器, 装载预分频寄存器的值
PWMA_ENO =|= 0xc0; // 允许IO输出
}
|
|