2015-6-2 16:57| 发布者: waveshare-admin| 查看: 10651| 评论: 0
AVR主控电路原理图(点击图片放大,不需要放大镜!)
下面部分从TXT拷出,拷到网页,代码部分缺省了很多空格,比较凌乱,请谅解!
//目标系统: 基于AVR单片机//应用软件: ICC AVR
/*01010101010101010101010101010101010101010101010101010101010101010101----------------------------------------------------------------------实验内容:AVR内部脉宽调制输出实验,用LED指示PWM的频率,在PWM速度较低时,可观察到LED的闪烁。----------------------------------------------------------------------硬件连接:将UserLed指示灯连接至PWM的端口PD7/OC2。----------------------------------------------------------------------注意事项: (1)若有加载库程序,请将光盘根目录下的“库程序”下的“ICC_H”文件夹拷到D盘(2)请详细阅读:光盘根目录下的“产品资料\开发板实验板\SMK系列\SMK1632\说明资料”----------------------------------------------------------------------10101010101010101010101010101010101010101010101010101010101010101010*/
#include <iom16v.h> #include <macros.h>
#define OC2_OUT_EN DDRD |= 0b10000000
/*--------------------------------------------------------------------程序名称:定时器2初始化程序程序功能:定时器作PWM使用,设置PWM的工作模式注意事项:提示说明:输 入:返 回:--------------------------------------------------------------------*/void timer2_init(void) { TCCR2 = (1<<WGM21)|(1<<WGM20)|(1<<COM21)|(1<<COM20)|(1<<CS20); /* 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的频率。
以下资料由微雪电子整理并发布,未经许可不得转载,否则追究相应责任!
评论
微雪官网|产品资料|手机版|小黑屋|微雪课堂. ( 粤ICP备05067009号 )
GMT+8, 2024-12-26 20:28 , Processed in 0.022222 second(s), 20 queries .