本帖最后由 刘前辈 于 2011-11-27 11:03 编辑
很简单,按照软件规则——它只要做到“极尽全力”;
1、你计算频率只是计算2个脉冲之间的时间,并不需要计算所有脉冲之间时间。所以你并不担心两次计算之间丢失几个脉冲。
2、你又要求不丢失脉冲数。
2者结合,
1、采用2楼highgear所说,用计数器记录脉冲;——这样保证了脉冲不丢失。
2、用中断ISR计算2个脉冲之间时间;(这时中断是关着的,你并不必担心丢失脉冲,因为那边计数器并行工作帮你记录着呢。)
3、计算完当前脉冲频率,再次开放中断,采集并计算所能采集到的下一个时钟频率;——这叫做极尽全力。这样,频率计算精度也保证了,脉冲也不丢失。
highgear 是OS 大师,OS 软件中的“极尽全力”概念,所长可以借此给大家讲一课了。
、、
|