首先声明编号后面的每一句话是其他帖子老师的经验总结,本人根据自己的理解又加了几句话和大家分享,不妥的地方还请大家原谅。由于本人是新手理解方面可能有误,还请大家指正共同学习。
我最近做程序也遇到了关于边沿触发的几个问题,今天看见论坛的总结感觉以前的疑问都解决了。
1、边沿信号要靠两个相邻周期进行判断。
也就是说必须在前面至少有一个扫描周期的情况下下一个扫描周期才能用边沿触发。所以才有第2条。
2、在第一个扫描周期使用边沿检测指令是没有意义的。
我曾经用sm0.1后边是上升沿触发再接mov指令,结果mov指令根本就没有执行。
3、当子程序在一个周期内多次被调用时,内部使用的边沿检查指令会造成错误。(表现为除第一次被调用外,其后的调用不执行边沿指令后的逻辑)
一个点的一个边沿触发在一个周期只能使用或出现一次,后面可以出现多条语句。但不能以为语句多,分离开出现在两个程序段,这样触发点后的程序也不会执行。
4、由于中断程序的运行往往与扫描周期脱离,中断程序中不要使用边沿检测指令。
中断程序在某个周期只能执行一次,不存在两个周期间的边沿问题,所以不能用边沿触发。
5、不要对临时寄存器使用边沿检查指令。
6、200对边沿指令的个数有限制,即只能记录256个边沿状态。