Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2265164
  • 博文数量: 187
  • 博客积分: 1457
  • 博客等级: 上尉
  • 技术积分: 2423
  • 用 户 组: 普通用户
  • 注册时间: 2012-04-13 09:41
个人简介

如需要绘制PCB,设计电路可以和我联系。sunhenu@163.com.

文章分类

全部博文(187)

文章存档

2017年(2)

2016年(2)

2015年(7)

2014年(13)

2013年(80)

2012年(83)

分类: LINUX

2012-12-22 09:19:33

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,亮度从暗到亮,循环变化。图片我就不截取了。

阅读(3660) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~