近期在做定时中断做流量累计时出现了一些问题:
采用中断11,做50ms定时中断,将流量值(单位为m3/h)转换为50ms瞬时值(流量值/72000=50ms瞬时值),在中断程序int0里将其与累计值进行ADD_R操作。由于50ms瞬时值过小(9 e-005),累计值出现不准确(理论上每秒应为0.018左右,但实际每秒累加值为70.0),检查程序,没有错误。
解决办法:在累计前不对流量值进行处理,直接把累计值和流量值(单位为m3/h)进行累加,在主程序里对累加值进行/72000操作,这样得出的累计值与实际值基本就能相符了。
分析原因:可能是由于50ms的瞬时值过小,造成累计值和瞬时流量相加的结果出现不符情况,造成累计值出现问题。