发表于:2008/11/30 10:48:00
#0楼
比如在超级终端发送abcd1234,vb100中显示10个字符,然后abcd1234分别在vb101到vb108中,后2位分别是od和oa了,这个一切正常。
当紧接着在接受中断中,把vb100再发出去的时候,发现每次都少前面一位:bcd1234也就是没有了a,但是在状态表中监控,vb101确实保存着a,每次只要把vb101给个空值就正常了,也就是“空格abcd1234",然后再发送就正常了。这是为什么那?
把代码贴出来,(最基础的,大家不要笑)
主程序:
LD SM0.1
CALL 子程序:SBR0
子程序:
LD SM0.0
MOVB 16#09, SMB30
MOVB 16#B0, SMB87
MOVB 16#0A, SMB89
MOVW 5, SMW90
MOVB 50, SMB94
RCV VB100, 0
ATCH 接收中断:INT0, 23
ENI
接收中断:
LDB= SMB86, 16#20
S Q1.0, 1
XMT VB100, 0
ATCH 发送中断:INT1, 9
CRETI
发送中断:
LD SM0.0
S Q0.0, 1
大家费心了!
当紧接着在接受中断中,把vb100再发出去的时候,发现每次都少前面一位:bcd1234也就是没有了a,但是在状态表中监控,vb101确实保存着a,每次只要把vb101给个空值就正常了,也就是“空格abcd1234",然后再发送就正常了。这是为什么那?
把代码贴出来,(最基础的,大家不要笑)
主程序:
LD SM0.1
CALL 子程序:SBR0
子程序:
LD SM0.0
MOVB 16#09, SMB30
MOVB 16#B0, SMB87
MOVB 16#0A, SMB89
MOVW 5, SMW90
MOVB 50, SMB94
RCV VB100, 0
ATCH 接收中断:INT0, 23
ENI
接收中断:
LDB= SMB86, 16#20
S Q1.0, 1
XMT VB100, 0
ATCH 发送中断:INT1, 9
CRETI
发送中断:
LD SM0.0
S Q0.0, 1
大家费心了!