【摘要】:TND指令是暂停指令,用于例程调试。例程梯级逻辑的扫描遇到这个标志就结束了例程的扫描,TND指令的作用正是如此,例程的梯级扫描一旦遇到TND指令,就会在此处停止梯级逻辑扫描,后面的梯级将不会扫描执行。图11-16 暂停在装载和卸载动作之间编写如图11-16所示的梯级逻辑,位于FFL指令之后的TND指令的梯级可以令扫描暂停在FFL指令执行之后,在线测试可以看到装载到第21个数据时的情形。
TND指令是暂停指令,用于例程调试。也许你没有注意到,每个例程的最后都有一个END的梯级,如图11-15所示。例程梯级逻辑的扫描遇到这个标志就结束了例程的扫描,TND指令的作用正是如此,例程的梯级扫描一旦遇到TND指令,就会在此处停止梯级逻辑扫描,后面的梯级将不会扫描执行。

图11-15 每个例程的最后都有一个END的梯级
前面,我们在编写先入先出的堆栈指令采集数据的梯级逻辑的一个应用实例中,曾遇到堆栈数组最后缺少一个数据的情形,一时不大好理解,通过详细分析才找到问题所在,但那只是理论上的分析。如何通过实验来验证其正确性?从而可以放心地使用数组长度加1的解决方案。
(https://www.xing528.com)
图11-16 暂停在装载和卸载动作之间
编写如图11-16所示的梯级逻辑,位于FFL指令之后的TND指令的梯级可以令扫描暂停在FFL指令执行之后,在线测试可以看到装载到第21个数据时的情形。在数据表中查看,第21个数据被装载在最后一个数据单元,由于FFU之后的指令都没有执行,FFL指令和FFU指令共用的Control_FIFO结构数据的完成位DN的梯级条件未作用于执行卸载操作指令FFU,第21个数据暂时地没有消失,前面我们分析过的完成位DN置位后执行的瞬间情况得以证实。
用TND的指令来分段调试例程也许真的很实用,它可以让例程扫描停止在我们想要停止的地方,使我们能检查和分析应有的状态或结果,用以证实正确与否,但我们一定要明了是如何停止扫描的,这样才能准确地判断和分析测试结果。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。
