最近负责的两个MCU的项目都出现了状态数据变化不及时的问题,影响到上层的逻辑实现。
昨天暂时缓解了其中一个的问题。
我接收指令用的是串口中断,优先级较高,而主程序循环中的第一顺序位也是中断之后的业务逻辑。而反馈程序在该业务逻辑之后,这使得快速连续发指令时不能进入反馈程序,而一直执行中断业务逻辑,致使反馈状态不及时。
于是我修改了中断逻辑和反馈逻辑在主程序中的执行顺序,要执行中断前须得先更新状态,这样处理之后上层监测到状态数据反馈相对快了些,还有一部分原因在我获取反馈状态的机器上,它的状态变化也有一定延迟,这没有方法改善。
解决问题的突破口在于在头脑模拟故障时的情景,去推程序进程,判断可能出现的结果。
curton 2021-6-17 20:13