如何用一个定时器生成PWM波形

如题所述

PWM的意思是“脉冲宽度调制”PWM有两个最基本的参数:频率、占空比。频率就是每秒钟电平高低变化的次数,占空比是指高电平保持时间和整个脉冲周期中的比例关系。对于用定时器来模拟,最基本的方法就是使用一个IO口循环设置其输出值为高电平和低电平。那么定时器在这里起计时作用,而且需要两个时间:高电平持续时间、低电平持续时间。只要做到这两个时间的计时,那么就可以实现基本的PWM了。而要做到两个时间的计时,有两种方案:1.单计时器方案<pre t="code" l="cpp">int i;//计时变量

timer1(){//计时器1中断函数
//此处示例每隔100个最小计时周期电平变化一次,即200个最小计时周期闪烁一次
i++;
if (i==200){
i=0;//变量复位,完成一个周期,准备下一个周期
}
else if (i==100){
LED_OFF;//关灯
}
else if (i==0){
LED_ON;//开灯
}
}2.双计时器方案
<pre t="code" l="cpp">//只需要设计好两个计时器的初值和周期,即可完成交替亮灭
timer1(){//计时器1中断函数
//此处示例每隔100个最小计时周期电平变化一次,即200个最小计时周期闪烁一次
LED_ON;//开灯
}
timer2(){
LED_OFF;//关灯
}
温馨提示:答案为网友推荐,仅供参考