用TIMERA对外来脉冲计数,脉冲输入TACLK,读到的值总是不准,不知道各位有什么高招?TIMERA益出有什么好办法可以连续计数?
问题1:怎么个不准?漏计还是多计?输入频率多少?
问题2:在输入频率不高的情况下,建议用TimerA的溢出中断,在中断中读取计数器的值到某一个内存累加变量中后再清除计数器值或恢复预置值,达到连续计数的目的。当然整个中断处理过程的时间要小于输入脉冲的1/2周期。
1、应该是漏计了,输入频率不是很高,最高也就是20KHZ。
2、TIMERA我用的是连续计数到0XFFFF后中断的方式,在溢出中断里累计中断次数。然后应用程序里面用溢出次数*65535+TAR值,就是连续计数值。但是结果相差很大,很大。
要是我用IO口中断计数方式,倒是很准。但是程序中断太频繁,影响到我其他的模块处理!