quote:以下是引用琪琪在2006-03-08 10:10:51的发言:quote:以下是引用我是蝈蝈在2006-03-06 18:53:34的发言:
我的解释:(不知对吗?请指正)
因此100ms中断被调用时如果程序正好处于读输入阶段则Q0.0为0反之则为1。
还是有些难理解,手册中讲有强制时,读输入读得是强制值。在程序中其他地方又没有改变I0.0的值,所以I0。0应该一直是1,难道是读输入分两步走,先读真实值,再改变成强制值?
我还把程序改成当I0.1上升沿时调用一次中断,发现如果用强制值来改变I0.1则是不会调用中断程序的。
我在猜想:上升沿中断是检测物理输入的上沿,而强制是对输入映象寄存器在扫描循环中特定时刻进行的周期性写入,如果是强制Q,M,V等这些周期性写入的值还会受后序进行的程序执行影响,所以改成I0.1上沿后强制I0.1为ON不会产生中断.另在中断程序中将LD I0.0改成LDI I0.0后Q0.0就不再时通时断是因为用立即指令读的是强制值,如果读输入映象(LD I0.0)定时中断刚好在系统执行强制操作写前发生读到的就不是强制值而是输入映象值如琪琪所说分了两步走.
不知是不是这样?