//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){;;}
}
文章评论(0条评论)
登录后参与讨论