恭喜,你发布的帖子
发布于 2018-01-30 16:04:50
29楼
猜测的:SM0.5是一个系统时基,每隔0.5秒状态翻转,但对用户程序而言只是在扫描周期开始时刷新状态,如果扫描周期很长就会漏掉一些状态,举个极端的例子:扫描周期是1秒,扫描开始时是OFF态,则下一扫描周期开始时由于经过了1秒,SM0.5按时差翻转两次又回到了OFF态,用户的程序中就检测不到SM0.5的ON态。当然扫描周期的波动和0.5秒不是严格同步,实际用户程序可能还是有微弱机会检测到ON。要想捕捉到SM0.5的每一次ON,OFF状态,至少扫描周期不能超过0.5秒,这个符合采样定理。假如扫描周期达到1.5秒,用户程序得到SM0.5的状态可能是OFF ON 交替变化,于楼主而言的边沿指令这时会检测到变化从而输出。
很久以前在感受200的0.1秒分辨率定时器时就发现某一扫描周期大于0.1秒时比如0.3秒,到下一扫描周期执行定时指令时当前时间增加的量就是3.扫描周期波动也不会漏计时间。但对于SM0.5而言由于它只有ON OFF两个状态记录时间,用户程序不能及时读取状态的话势必导致计时丢失。累加SM0.5计时的程序尤其要注意这一点,如果发生这种可能的话不如读取系统时钟来计时还更可靠一些。
请填写推广理由:
分享
只看
楼主