PWM是啥,不多说自己网络上搜索,PWM调节在控制方面使用很广泛,利用PWM控制方式可以使得电路简单可靠,芯片体积也会很小。下面看看AVR的PWM输出控制吧。
void timer1_pwm()
{
TCCR1A=(1<
//比较输出模式,快速PWM,比较匹配时清零OC1A/B,OC1A/B在TOP时置位。
TCCR1B=(1<
//模式14,快速PWM,计数上限由ICR1确定,1024分频。
ICR1H = 0x00; //计数上限,也即是TOP值,调节PWM频率
ICR1L = 0xFF;
DDRD_Bit5=1;
DDRD_Bit4=1; //OC1A/B管脚设置为输出
OCR1AH=0x00; //OC1A匹配寄存器,调节占空比
OCR1AL=0xef;
OCR1BH=0x00; //OC1B匹配寄存器,调节占空比
OCR1BL=0x0F;
}
对照手册PWM设置很简单,上面的程序是初始化代码,在main函数中,修改OCR1A和OCR1B的值,就可以改变占空比了。在PD4和PD5端口接上发光二极管就可以调节发光二极管的亮度,你也可以接上示波器观察波形。
在力天开发板上,PD4和PD5是控制数码管的选通位,这样我们设置PORTB输出OXFF,然后可以看见一个数码位显示8,亮度从暗到亮,循环变化。图片我就不截取了。
)|(1<
)|(1<
文章评论(0条评论)
登录后参与讨论