电子大神的日记本,供应链专家的功夫茶盘,在这里记录、分享与共鸣。

登录以开始

CVAVR基础程序---T2定时程序

//AVR T2 作普通定时器
#include <mega8.h>
#define  uchar unsigned char
#define  LEDDIR  DDRD.1
#define  LED     PORTD.1
#define  SEI     SREG|=0x80
uchar    i;

void IO_Init(void)
{
      LEDDIR="1";
      LED="0";
}          

void Timer2_time_Init(void)
{
      TCCR2=0x00;
      TCNT2=56;
      TIMSK|=0x40;
      TIFR&=0x3f;
      SEI;
      TCCR2=0x02;
}

interrupt [TIM2_OVF] void timer2_ovf_isr(void)
{
      TCNT2=56;             //8M 八分频  每步耗时1us 则定时时间为:(256-56)*1us=200us
      if (++i>=250){i=0; LED=!LED;} // LED灯操作一次的时间:250*200us=50ms
}

void main(void)
{
      IO_Init();
      Timer2_time_Init();
      while(1){;;}
}

博主
AnalogMaster
AnalogMaster's Blog
AnalogMaster
点击跳转