//程序想测试时间计数 PD6 接一LED灯
//使用4M晶振 熔丝位CKSEL3..1 110 ,CKSEL0 0,SUT1..0 10
//程序想用 64预分频,想让LED灯 一秒着 一秒灭,TCCR1B = 3;时,大约5,6秒一次,但TCCR1B = 2;时,好像是1秒一次。
//问题 64预分频不是 TCCR1B = 3;么?为啥要5,6秒才中断一次?谢各位大侠帮帮忙
void ledOpen(void)
{
PORTD|=(1<<6);
}
void ledClose(void)
{
PORTD&=~(1<<6);
}
int main(void)
{
DDRD|=1<<DDD6;
TCNT1 = 3035;
TCCR1B = 3;
unsigned char nbool = 1;
while(1)
{
if(TIFR&(1<<TOV1))
{
TCNT1 = 3035;
TIFR=TIFR | (1<<TOV1);
if(nbool==1)
{
ledOpen();
nbool = 0;
}
else
{
ledClose();
nbool = 1;
}
}
}
return 1;
} |