您的位置 首页 硬件

AVR M16试验之三 PWM试验

***********************************************************************文件名称:mainc*程序作者:kidcao1987*程序

/**********************************************************************
* 文件名称: main.c
* 程序作者: kidcao1987
* 程序版别: V1.0
* 功用描绘: 左下角有一个LED灯,亮度会由暗变亮,再变暗。
* 编译器:WinAVR-20090313
* 芯片:ATmega16,外部11.0592MHZ晶振
* 技术支持:http://bbs.cepark.com
**********************************************************************/
#include
#include
#include

#define uint unsigned int
#define uchar unsigned char
#define PWM1 PD5
#define PWM2 PD4

uint i=0,flagA=0,flagB=0,j=0;
void PWM_Initial(void);
int main(void)
{
PWM_Initial();
while(1);
}
void PWM_Initial(void)
{
PORTD&=~((1<|||||(1<||(1<||(1<|(1<||(1<|(1<DDRD|=(1<|(1<|(1<|(1<|(1<TCCR1A=0xa3;
TCCR1B=0x0b;
OCR1A=0x0000;
OCR1B=0x03ff;
TIMSK|=(1<<3)|(1<<4);
sei(); //通道A、B都运用“比较匹配时清零OC1A/OC1B”,10位快速PWM,时钟源的分频系数为8分频
//写比较寄存器A、B初始值,翻开AB通道比较中止,翻开总中止
}
ISR(TIMER1_COMPA_vect) //定时器1通道A比较匹配中止,中止号来自GCC AVR顺便函数库阐明
{
if(flagA==0)
{
i++;
if(i>0x03ff)
flagA=1;
}
if(flagA==1)
{
i–;
if(i<=0)
flagA=0;
}
OCR1A=i;
}
ISR(TIMER1_COMPB_vect) //定时器1通道B比较匹配中止,中止号来自GCC AVR顺便函数库阐明
{
if(flagB==0)
{
j++;
if(j>0x03ff)
flagB=1;
}
if(flagB==1)
{
j–;
if(i<=0)
flagB=0;
}
OCR1B=j;
}

视频地址:http://v.youku.com/v_show/id_XMTYxNDg3MTAw.html

|(1<

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

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

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

微信扫一扫关注我们

返回顶部