您的位置:首页单片机AVR单片机
内容搜索:
阅读内容
背景:#EDF0F5 #FAFBE6 #FFF2E2 #FDE6E0 #F3FFE1 #DAFAF3 #EAEAEF 默认  

ATMega8 PWM 功能(T/C 1)测试程序

[日期:2008-05-14 ] [来源:东哥单片机学习网(www.picavr.com) 作者:佚名] [字体: (投递新闻)
#include <avr/io.h>
#include <avr/delay.h>

#define uchar unsigned char
#define uint unsigned int

#define FREQ 4

//延时
void DelayMs(uint ms)
{
     uint i;
     for(i=0;i<ms;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(COM1B1)*/|_BV(WGM10);
     TCCR1B=_BV(CS11)|_BV(CS10);
     
     
     TCNT1=0;
     DDRB|=_BV(PB1)/*|_BV(PB2)*/;//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;
}
阅读:
录入:JETTA

推荐 】 【 打印
本文评论
      全部评论
发表评论


点评: 字数
姓名:
赞助商广告