各位:
这是一个很简单的程序,就几句,将它编译完成后,在程序状态监控下,我发现vd108和vd112在40.0和2000.0这两个值间来回无规律的跳变,我觉得该是2000.0的,我也没给vd108和vd112值为40啊,他们也不会接触到40这个值,最终导致结果vd116在0.0、1960.0、-1960.0这三个值之间无规律的变动在计算过程中,怎会这样呢?去掉中断就好了,不知道为什么,请明白原因的高手指点一二。
BEGIN
Network 1
LD SM0.1
MOVR 40.0, VD100
MOVR 40.0, VD104
Network 2
LD SM0.0
MOVR VD100, VD108
*R 500.0, VD108
MOVR VD104, VD112
*R 500.0, VD112
Network 3 // 调用中断程序
LD SM0.1
MOVB 20, SMB34
ATCH INT0, 10
ENI
END_ORGANIZATION_BLOCK
SUBROUTINE_BLOCK 求差值:SBR1
Network 1
LD SM0.0
MOVR VD108, VD116
-R VD112, VD116
END_SUBROUTINE_BLOCK
INTERRUPT_BLOCK
LD SM0.0
CALL 求差值:SBR1