使用Atmega162,用Timer1做为外部输入信号的计数器,外部输入信号的频率是1HZ-10KHZ,采用Timer0的定时器(10ms),每1秒钟读取一下Timer1的计数器值。Timer1的计数器值不准确,如果每10ms读取一下TCNT1H和TCNT1L(读取但不作任何处理),则1秒后读取到的计数器值比较大(比如4000);但是如果只是1秒钟后再读取(期间不读取TCNT1H和TCNT1L),则计数值很小(比如100);哪位大侠帮忙解释一下,看看可能是什么问题?谢谢! Timer1的初始化如下: TCCR1A = 0x00; TCCR1B = 0x06; // 计数分频是"外部下降沿信号" TCNT1H = 0x00; TCNT1L = 0x00; 单片机clock是8MHZ
|