打印

PIC18中发现怪异问题

[复制链接]
1358|5
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
ltbytyn|  楼主 | 2012-11-8 13:57 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
X[0] =0x7D1;
Y[0] =0xA50;
uint8   mm(void)
{
  uint16  arg;  
  uint16  arg1;  
  arg =X[0];
  arg1 =Y[0]
  if(arg >arg1)
        return  0;
}
程序有时候会返回0.在return前打断点,发现arg有时候读错(arg=0xD107),高8位与低8位互换位置。
在return前打断点,有时候甚至发现判断错误,mm()返回0.(arg =0x7D1,arg1=0xA50.)

X[0]和Y[0]未在中断中出现,太经典了。以前没用过PIC,最近刚用,请大家帮忙分析一下。
沙发
ltbytyn|  楼主 | 2012-11-8 15:40 | 只看该作者

使用特权

评论回复
板凳
vitalma| | 2012-11-8 16:33 | 只看该作者
x[0]&y[0]数据类型有定义过吗
1# ltbytyn

使用特权

评论回复
地板
vitalma| | 2012-11-8 16:34 | 只看该作者
另外写这个mm()函数有什么意义呢
1# ltbytyn

使用特权

评论回复
5
ltbytyn|  楼主 | 2012-11-8 17:16 | 只看该作者
x[0]和y[0]都是定义过的 (unsigned int)

mm()只是测试程序临时命令而已

使用特权

评论回复
6
ayb_ice| | 2012-11-9 11:22 | 只看该作者
加volatile吧

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

5

主题

154

帖子

1

粉丝