发布于 2011-11-18 22:06:29
10楼
看看你要求对 t 的分辨率有多高?10毫秒?1毫秒?0.1毫秒?
用多段管线输出会有最大段数的限制。显然不能适应无限长的 t (时间)轴。只能使用单段管线。
把时间分辨率确定在10毫秒以上。用手工或者程序自动算出隔10毫秒(与前面单位间隔相同)的当前脉冲周期。填写31.4秒(一个周期)的每个时间间隔内的当前周期。
然后计算准备发的脉冲在10毫秒内的脉冲数,驱动单段脉冲输出。并计算预加载下一段的脉冲。以后每当脉冲完成中断就预加载下一段的脉冲。
当真实脉冲发完一段的时候比较当前时钟是否与理论时间间隔相同。若不同,将在下一次预加载的时候修正脉冲数,以用于与时钟同步。
当真实脉冲基本与时钟同步时,当前脉冲周期可以在前面填写的表里用间接寻址找到。每一次就只计算当前脉冲数就可以了。