通用定时器0/1/2的关于PWM输出基本特性具有2路独立PWM输出CHA,CHB,1路互补PWM输出(CHA,CHB)+1路独立PWM输出(gate),1路互补PWM输出(CHA,CHB)+1路捕获功能(gate)。
HC32L130_HC32L136系列用户手册Rev1.8中将基础定时器的模式2/3放到了一起进行说明,其中的原因是在模式2/3下功能大体相同,不同之处在于模式2为锯齿波计数波形,模式3为三角波计数波形。
比较输出OCREF可以配置为单点输出,使用比较寄存器 CCRA控制OCREFA的输出;OCREFA也可以配置为双点比较,使用比较寄存器CCRA、CCRB一起控制OCREFA的比较输出。
OCREFB,则只能使用单点比较,用比较寄存器CCRB控制OCREFB的比较输出。
OCREF输出使用OCMx选择,在这里选择PWM模式1/2,两种模式的高低电平相反。
锯齿波技术单点比较OCREF输出波形(PWM模式2)
三角波计数单点比较OCREF输出波形(PWM模式2)
进行OCREF比较输出的大体流程为:
1.配置时钟并使能;
2.设置CHA,CHB的输出引脚;
3.配置Tim0;
4.设置重载值与比较值;
5.配置通道比较控制结构体。
添加中断,将重复计数器产生的更新事件UEV作为中断使能,将比较值CCRA和CCRB进行交换使双通道的波形每个周期进行对换。
锯齿波模式输出波形
三角波模式输出波形
总结:通过控制两个比较寄存器CCRA、CCRB的值来控制输出波形的占空比来输出不同的波形。
例如 : u16CompareAValue++;
Bt_M23_CCR_Set(TIM0, BtCCR0A, u16CompareAValue);
i++;
if(i == 65535)
{
for(i=65535;i--;i<1)
{
u16CompareAValue--;
Bt_M23_CCR_Set(TIM0, BtCCR0A, u16CompareAValue);
}
}周期性控制产生波形的占空比。
|