quote:以下是引用zhangli0在2008-01-02 09:48:00的发言:
你看看fp、fn的指令时序图就明白了!FP:当变量的值出现上升沿0到1的变化的时候,fp m10.2,m10.2的值再出现上升沿的这个周期为1,下一个周期为0,这样的变量变化和FP L10.2中的L10.2的变化是一样的,所以你的程序结果是一样的,但是他们的本质不同,M10.2可以记忆,但是它被FP指令复位了!L10.2不可以记忆,所以下一个周期它自动变成了0。FN的使用和FP是一样的。只是读取变量的1到0的变化状态。
在“FP”“FN”指令的说明:在每个程序扫描周期,都会将RLO位的状态与上一周期获得的状态进行比较,上一周期的状态存储在沿标记地址中,即上一周期的状态存储在FP,FN后面紧跟的地址中,如下例子就存储在L10.2。
对于
A M10.1
FP L10.2
= M10.3
还好理解, L10.2自动复位为0,而下面的
A M10.1
FN L10.2
= M10.3
就有点牵强了,既然 L10.2自动复位为0,那么他怎么判断M10.1
的下降沿????我结果仿真软件测试,
A M10.1
FN M10.2
= M10.3
执行结果一致!!