AVR单片机入门系列(26)AVR PWM OC2
AVR内部脉宽调制OC2输出实验,用LED指示PWM的频率,在PWM速度较低时,可观察到LED的闪烁。
硬件设计
AVR主控电路原理图
软件设计
//目标系统:基于AVR单片机
//应用软件: ICC AVR
/*01010101010101010101010101010101010101010101010101010101010101010101
----------------------------------------------------------------------
实验内容:
AVR内部脉宽调制输出实验,用LED指示PWM的频率,在PWM速度较低时,可观察到LED的闪烁。
----------------------------------------------------------------------
硬件连接:
将UserLed指示灯连接至PWM的端口PD7/OC2。
----------------------------------------------------------------------
注意事项:
(1)若有加载库程序,请将光盘根目录下的“库程序”下的“ICC_H”文件夹拷到D盘
(2)请详细阅读:光盘根目录下的“产品资料开发板实验板SMK系列SMK1632说明资料”
----------------------------------------------------------------------
10101010101010101010101010101010101010101010101010101010101010101010*/
#include
#include
#define OC2_OUT_EN DRD |= 0b10000000
/*--------------------------------------------------------------------
程序名称:定时器2初始化程序
程序功能:定时器作PWM使用,设置PWM的工作模式
注意事项:
提示说明:
输入:
返回:
--------------------------------------------------------------------*/
void timer2_init(void)
{
TCCR2 = (1 /* WGM21=1; WGM20=1; --> fast PWM modle COM21=1; COM20=0; -->比较匹配时set OC2 pin CS20=1; --> timer2 source不经过任何分频,直接为Clk,使得PWM可以工作得足够快 */ TCNT2 = 0x00;//设置TC2计数寄存器初值 OCR2 = 0xE0;//输出比较寄存器初值,设置该值可用于调节OC2占空比 } /*-------------------------------------------------------------------- 程序名称: 程序功能: 注意事项: 提示说明: 输入: 返回: --------------------------------------------------------------------*/ void main(void) { OC2_OUT_EN;//为允许PWM工作,需设置PD7为输出 timer2_init(); SEI(); while(1); } 系统调试 改变PWM初始化代码的如下两个语句的赋值: TCNT2 = 0x00;//设置TC2计数寄存器初值 OCR2 = 0xE0;//输出比较寄存器初值,设置该值可用于调节OC2占空比 从LED的闪烁频率可以看出,改变了PWM的频率。
AVR单片机PWMOC 相关文章:
- AVR单片机入门系列(25)AVR PWM OC0(12-03)
- Windows CE 进程、线程和内存管理(11-09)
- RedHatLinux新手入门教程(5)(11-12)
- uClinux介绍(11-09)
- openwebmailV1.60安装教学(11-12)
- Linux嵌入式系统开发平台选型探讨(11-09)