单片机
返回首页

AVR单片机入门系列(26)AVR PWM OC2

2016-09-30 来源:eefocus

系统功能

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的频率。

进入单片机查看更多内容>>
相关视频
  • RISC-V嵌入式系统开发

  • SOC系统级芯片设计实验

  • 云龙51单片机实训视频教程(王云,字幕版)

  • 2022 Digi-Key KOL 系列: 你见过1GHz主频的单片机吗?Teensy 4.1开发板介绍

  • TI 新一代 C2000™ 微控制器:全方位助力伺服及马达驱动应用

  • MSP430电容触摸技术 - 防水Demo演示

精选电路图
  • CCD图像传感器在微光电视系统中的应用

  • 离子检测器电路分析

  • 一个简单的立体声平衡指示器电路

  • 分享一个电网倾角计电路

  • 电谐波图形均衡器示意图

  • 一种构建12V和230V双直流电源的简单方法

    相关电子头条文章