关中断的方法大家都知道。
我想知道的的是除了关中断和循环读,还有没有其它方法。
流行音乐 发表于 2011-8-29 21:07
最基本最经典的就以上这两种方法。
但使用不当,依然会犯错。
1. 关中断法。
前面所说的都是关总中断,一般用用还行,但在某些实时性很高的场合,给你关了一会儿总中断,会漏了某些突发事件,因此,推荐只关影响改变count计数的中断,停止count计数,这样,其他实时性很高的突发事件,可继续响应中断。
2. 关中断法在绝大多数情况下,是行之有效的简单又省事,代码量又少的优选方案。
但是,对某些计数频率很高的有实时性要求的 计数/定时器 而言,关一次中断又是至命的杯具-------会漏计N个计数数据,因此,循环读出对比确认法应运而生,但对计数频率很高的 计数/定时器 ,将高低数据一次性全部读出后再对比,又行不通,因为计数频率太快,当你一个字节数据都没读完,count计数值已经改变,第二次读出的数据永远和第一次读出的数据不相等,根本没法工作。后来人们又想出,分两次读,先读高字节,再读低字节,最后仅比较高字节内容是否改变(是否有进位),没改变就当读入的count计数值有效,否则再重来一次,这样,彻底解决了高速count的读出问题。 |