您的位置 首页 方案

AVR单片机入门系列(25)AVR PWM OC0

系统功能AVR内部脉宽调制OC0输出实验,用LED指示PWM的频率,在PWM速度较低时,可观察到LED的闪烁。硬件设计AVR主控电路原理图软件设计目

体系功用

AVR内部脉宽调制OC0输出试验,用LED指示PWM的频率,在PWM速度较低时,可观察到LED的闪耀。

硬件规划

AVR主控电路原理

软件规划

//方针体系:根据AVR单片机

//应用软件: ICC AVR

/*01010101010101010101010101010101010101010101010101010101010101010101

———————————————————————-

试验内容:

AVR内部脉宽调制输出试验,用LED指示PWM的频率,在PWM速度较低时,可观察到LED的闪耀。

———————————————————————-

硬件衔接:

将UserLed指示灯衔接至PWM的端口PB3/OC0。

———————————————————————-

注意事项:

(1)若有加载库程序,请将光盘根目录下的“库程序”下的“%&&&&&%C_H”文件夹拷到D盘

(2)请具体阅览:光盘根目录下的“产品材料开发板试验板SMK系列SMK1632阐明材料”

———————————————————————-

10101010101010101010101010101010101010101010101010101010101010101010*/

#include

#include

#define OC0_OUT_ENDDRB |= 0b00001000

/*——————————————————————–

程序称号:定时器0初始化程序

程序功用:定时器作PWM运用,设置PWM的作业形式

注意事项:

提示阐明:

输入:

回来:

——————————————————————–*/

void timer0_init(void)

{

TCCR0 = (1<||(1<||(1<|||(1<|(1<||(1<||(1<||(1<||(1<||(1<|||(1<|(1<||||(1<|<|(1<|(1<|(1<|(1<||||(1<||(1<|<|(1<|<|(1<|||(1<||(1<|(1<||(1<||(1<||||<|(1<|||(1<|(1<|(1<|<|<|||(1<||<|(1<||(1<||<|<|||(1<|<||(1<|(1<||||(1<|<|(1<|(1<|(1<|(1<||||(1<||(1<|<|(1<|<|(1<|||(1<||(1<|(1<||(1<||(1<||(1<|||(1<|(1<|||<|(1<|(1<|(1<||(1<||(1<||(1<|(1<|(1<|||(1<|(1<|(1<||(1<||(1<

/*

WGM01=1; WGM00=1; –> fast PWM modle

COM01=1; COM00=0; –>比较匹配时set OC0 pin

CS00=1; –> timer0 source不通过任何分频,直接为Clk,使得PWM能够作业得足够快

*/

TCNT0 = 0x00;//设置TC0计数寄存器初值

OCR0 = 0x10;//输出比较寄存器初值,设置该值可用于调理OC0输出占空比

}

/*——————————————————————–

程序称号:

程序功用:

注意事项:

提示阐明:

输入:

回来:

——————————————————————–*/

void main(void)

{

OC0_OUT_EN;//为答应PWM作业,需设置PB3为输出

timer0_init();

SEI();

while(1);

}

体系调试

改动PWM初始化代码的如下两个句子的赋值:

TCNT0 = 0x00;//设置TC0计数寄存器初值

OCR0 = 0x10;//输出比较寄存器初值,设置该值可用于调理OC0输出占空比

从LED的闪耀频率能够看出,改动了PWM的频率。

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/fangan/252513.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部