原创 AVR timer1PWM设置

2013-1-21 10:54 855 7 7 分类: MCU/ 嵌入式 文集: MCU

 

PWM是啥,不多说自己网络上搜索,PWM调节在控制方面使用很广泛,利用PWM控制方式可以使得电路简单可靠,芯片体积也会很小。下面看看AVR的PWM输出控制吧。
24343357_1356139564Or8b.jpg
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<
PARTNER CONTENT

文章评论0条评论)

登录后参与讨论
EE直播间
更多
我要评论
0
7
×
广告
关闭 站长推荐上一条 /3 下一条