恭喜,你发布的帖子
发布于 2020-01-22 16:41:01
7楼
系统给应用的边沿指令自动分配了寄存器,这个自动分配是针对每个子程序的,而不是子程序的每次调用。当多次调用该子程序,边沿指令使用的其实都是同一个寄存器里的数值,这就有可能会出现问题。你可以在“运行时编辑程序”,这时可以看到每个边沿指令都有一个数字的编号,在smart的系统中,边沿指令的个数是有限制的。
解决:可将需要的边沿检测做在主程序中,而把该结果作为子程序的输入参数。
或采用定时中断的方法,每次进入中断时进行一次自加1的逻辑,这样也不需要使用上升沿。采用中断的优点,除了可以设置ms时基,更重要的是中断事件不受程序的扫描周期的影响,计时更精准。
请填写推广理由:
分享
只看
楼主