[国产单片机] 关于不能赋值的问题

[复制链接]
1246|7
 楼主| 海阳 发表于 2019-2-14 17:27 | 显示全部楼层 |阅读模式
本帖最后由 海阳 于 2019-2-14 17:33 编辑

我手上有两份代码,对应同一个单片机。
定义一个全局变量:unsigned char pad = 0;
void main(void)
{
  pad = 0x08;
while(1);
……(此部分是其他代码)
}
在一份代码中可以赋值成功,在另一份中就不能赋值成功。
原因是什么?附加说明:我将其定义成:unsigned char data pad = 0;之后就可以赋值成功了

评论

@ningling_21 :是的,不能赋值就一直是0  发表于 2019-2-26 09:21
@海阳 :不能赋值,一直是0?  发表于 2019-2-15 07:47
增加说明:我将变量如下定义就又可以赋值成功了。 unsigned char data pad=0;  发表于 2019-2-14 17:31
airwill 发表于 2019-2-14 21:12 | 显示全部楼层
unsigned char pad = 0;

这个变量可能在 XDATA 区了,  你可以使用小模式, 让编译器将变量放在 DATA 区.
或者 unsigned char data pad=0;  
强制 DATA 区.
hobbye501 发表于 2019-2-14 21:31 | 显示全部楼层
那应该是 你分配的 存储区位置不对  数据定义的时候不一致了 或者是溢出了
ningling_21 发表于 2019-2-26 09:27 | 显示全部楼层
看看变量位于哪个数据区域?
linqing171 发表于 2019-3-3 20:17 | 显示全部楼层
工程设置里面的memory model选择成了large?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

主题

4

帖子

0

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