quote:以下是引用shine在2006-08-31 09:48:56的发言:quote:以下是引用WWYAN在2006-08-31 09:36:21的发言:
技巧:在定时中断中,用堆栈指令将每200ms采集的脉冲数压入堆栈,堆栈长度=5,并且立即将高速计数器清0,以免丢失脉冲!然后再配合FIFO指令对堆栈求和。得出每秒脉冲数。这样做的好处是每200ms就能知道每秒的脉冲数。
如果用压入队列的方法的话,不必清零,以1s间隔为例,第一个数据减第六个数据
shine:高速计数器如果不清0,会溢出的!或者总有高速计数器赋值语句,清0=赋值。
200ms定时中断子程序
MOV_DW HC3 VD220//高速计数器值送VD220
HSC 3//高速计数器清0
DI_I VD220 VW220//双整数-整数转换
AD_T_TBL VW220 VW0//将VW220添加到表格VW0的最后一格(已经设VW0=4,VW2=4)
FIFO VW0 VW224//将表格的第一个数弹出至VW224
VW226=VW220-VW224//求压入值与弹出值的差
VW228=VW228+VW226//求和
END