|
请教用AVR C/T0定时器实现定时 烧到板子上不能实现功能
[复制链接]
#include
#include
//#include
#define uchar8 unsigned char
const uchar8 Relay[8] =
{0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80};
volatile uchar8 count = 0;
volatile uchar8 i = 0;
void time0_init(void)
{
TCCR0 = 0x00;
TCNT0 = 0xD9;
TCCR0 = 0x05;//1024分频,定时器开始
}
void port_init(void)
{
DDRC = 0xff;
PORTC = 0x01;
}
void devices_init(void)
{
cli();
port_init();
time0_init();
TIMSK = 0x01;//使能溢出中断0
sei();
}
SIGNAL(SIG_OVERFLOW0)//定时器0溢出中断
{
TCNT0 = 0xD9;//装初值,定时0.01s
count++;
}
int main(void)
{
devices_init();
while(1)
{
if(count == 99) //实现1s的定时
{
i++;
if(i == 8)
i = 0;
PORTC = Relay;
count = 0;
}
}
return 0;
}
小弟初接触AVR单片机,编了一个小程序,可是下载到板子上,只能看到PORTC = 0x01 没有想要的每隔1s的那种循环出现,
调试的时候 将if(count == 99) 中的99数值改的比较小的数值,是可以的,为什么下载到板子上就不行了么
板子时从别人那里搞的,验证过,没问题!
|
|