发表于:2005/7/14 17:32:00
#0楼
这是我弄的一个自由口通讯程序,
但是出现了一个问题,就是第一次XMT 发送的是000.... ,第二次才能发送正确的数据, 怎么样才能把第一次发送的数据也弄正确呢??
MAIN
LD SM0.7 , CALL SBR-0
LDN SM0.7 , CALL SBR-1
SBR-0:
LD SM0.1
SMB 16#09,SMB130
ATCH INT-0,25
ENI
MOVD &VB100,AC1
MOVB 5, VB99 //发送数据缓冲区
SBR-1:
LD SM0.0
MOVB 16#08,SMB130
INT_0:
LD SM0.0
MOVB SMB2,*AC1
INCD AC1
INC VB0
LDB= VB0,5
MOVD &VB100,AC1
MOVB 0,VB0
比如我发送 1234567890 这数,开始启动的时候, 竟然接收到0000000000 , 第二次发送以后才能接收到正确的数据, 这应该怎么处理啊???
还有个问题就是: 一般接收里面的程序都是
LD SM0.1
RCV VB100,0
//以后的程序基本是在接收中断里面执行的, 可是这样只是第一个扫描周期才接收, 但是如果第一个ON 周期内没有接收的话, 第二个周期就OFF 了, 那么RCV 就没有吧,就不会产生中断, 那以后的程序就都不会运行, 但是很明显这是能运行的, 谁能帮分析一下啊?? 谢谢了,
但是出现了一个问题,就是第一次XMT 发送的是000.... ,第二次才能发送正确的数据, 怎么样才能把第一次发送的数据也弄正确呢??
MAIN
LD SM0.7 , CALL SBR-0
LDN SM0.7 , CALL SBR-1
SBR-0:
LD SM0.1
SMB 16#09,SMB130
ATCH INT-0,25
ENI
MOVD &VB100,AC1
MOVB 5, VB99 //发送数据缓冲区
SBR-1:
LD SM0.0
MOVB 16#08,SMB130
INT_0:
LD SM0.0
MOVB SMB2,*AC1
INCD AC1
INC VB0
LDB= VB0,5
MOVD &VB100,AC1
MOVB 0,VB0
比如我发送 1234567890 这数,开始启动的时候, 竟然接收到0000000000 , 第二次发送以后才能接收到正确的数据, 这应该怎么处理啊???
还有个问题就是: 一般接收里面的程序都是
LD SM0.1
RCV VB100,0
//以后的程序基本是在接收中断里面执行的, 可是这样只是第一个扫描周期才接收, 但是如果第一个ON 周期内没有接收的话, 第二个周期就OFF 了, 那么RCV 就没有吧,就不会产生中断, 那以后的程序就都不会运行, 但是很明显这是能运行的, 谁能帮分析一下啊?? 谢谢了,