恭喜,你发布的帖子
发布于 2020-07-16 08:26:40
18楼
我同意你的观点,循环中断要比定时器更稳定一些。
主要的原因在于循环中断的优先级高于定时器的优先级,当然循环中断是不会打断定时器的运行的。
也就是说定时器的更新并不是当程序扫描到定时器指令时才更新,一扫描周期可能会更新多次。
像你例子中分3个定时中断,我感觉还是有比较大的隐患的。
0.5ms 10ms 20ms的定时中断意味着什么
也就是说 20ms定时中断运行时,中间至少调用了40次 0.5ms的程序,
第一种情况:假设OB的优先级相同的话,
如果0.5ms中的程序较大的话,都有可能出现20ms定时中断被丢弃的情况,在这个地方还没有考虑10ms的定时中断,如果考虑10ms定时中断的情况,里面的情况就更复杂一些。
你可以通过优化的OB临时变量看一下,是否有OB被丢弃或者超出看门狗时间。
默认情况下,诊断信息是不选择的,即使出现这种情况,CPU也不会报警。选择上排队和诊断,你看一下。
某些情况下,循环中断OB不是像你想的那样,10ms的定时中断,有可能呢50ms运行,这个也不是不可能发生的。
所以你说循环中断不准,首先看一下循环中断的时间是不是真正的按照你的想法运行的。
请填写推广理由:
分享
只看
楼主