您的位置 首页 分销

ATMega8 PWM 功用(T/C 1)测验程序

includeavrioh>includeavrdelayh>defineucharunsignedchardefineuintunsignedintdefineFREQ4延时voidD

#include <avr/io.h>

#include

#define uchar unsigned char
#define uint unsigned int

#define FREQ 4

//延时
void DelayMs(uint ms)
{
uint i;
for(i=0;i _delay_loop_2(FREQ * 250);
}

int main (void)
{
uchar direction=1;
uchar pwm=0;

// 8位相位批改PWM形式
// OC1A 向上计数过程中比较匹配时清零
// 向下计数过程中比较匹配时置位
// 时钟源:4MHz/64 PWM频率:4MHz/(64*256)=122Hz
TCCR1A=_BV(COM1A1)|_BV(WGM10);
TCCR1B=_BV(CS11)|_BV(CS10);


TCNT1=0;
DDRB|=_BV(PB1);//OC1A pwm输出引脚答应

//循环改动PWM输出脉宽,使接在OC1A引脚上的发光管亮度发生变化
while(1)
{
if(direction)
{
if(++pwm==254)
direction=0;
}
else
{
if(–pwm==0)
direction=1;
}

OCR1A=pwm;
//OCR1B=pwm;
DelayMs(10);
}

return 0;
}

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

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

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

微信扫一扫关注我们

返回顶部