[ZLG-MCU] 仿真结果正常,下载后程序不对,怎么解决?

[复制链接]
2240|2
 楼主| swordlife 发表于 2009-7-13 19:08 | 显示全部楼层 |阅读模式
在AT89S8253上利用SmallRTOS&nbsp;编写了一个程序,在Keil&nbsp;仿真都正常,串口能够输出正确的字符,但是下载到单片机以后,串口输出1个正确字符以后,就输出错误的字符了。跟踪发现时在串口中断程序里面,OSQAccept(&temp,SerialOutData)&nbsp;传递过来的值temp不能送到SBUF里面,请问大侠们问题何在?<br />这个程序在C8051F023上跑起来没有问题,串口通讯都正确。是否在Keil&nbsp;编译的时候哪里设置不对?<br /><br />、***********************************************************/<br />中断程序如下:<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;void&nbsp;comm(void)&nbsp;interrupt&nbsp;4<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;uint8&nbsp;data&nbsp;temp;<br />&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(RI&nbsp;==&nbsp;1)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//这句适用于普通C51单片机<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />#if&nbsp;EN_OS_INT_ENTER&nbsp;&gt0<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;OS_INT_ENTER();<br />#endif<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;RI&nbsp;=&nbsp;0;<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;OSQIntPost(SerialInData,SBUF);<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;OSIntExit();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return;<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(TI&nbsp;==&nbsp;1)<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TI&nbsp;=&nbsp;0;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(OSQAccept(&temp,SerialOutData)&nbsp;==&nbsp;OS_Q_OK)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SBUF&nbsp;=&nbsp;temp;&nbsp;&nbsp;&nbsp;//运行到这里,SBUF则只发送一个随机值,而不是OSQAccept()取出来的消息<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//SBUF='2';&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//这里加上这个测试语句,串口则能正确的发送字符2出去,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SerialCanSend&nbsp;=&nbsp;1;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />}<br /><br /><br />
linhai1986 发表于 2009-7-17 21:19 | 显示全部楼层

没遇到过,帮顶

  
xiaoxin1986 发表于 2009-7-17 22:07 | 显示全部楼层

路过

  
您需要登录后才可以回帖 登录 | 注册

本版积分规则

35

主题

51

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部