打印
[国产单片机]

关于不能赋值的问题

[复制链接]
1012|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;之后就可以赋值成功了

评论
海阳 2019-2-26 09:21 回复TA
@ningling_21 :是的,不能赋值就一直是0 
ningling_21 2019-2-15 07:47 回复TA
@海阳 :不能赋值,一直是0? 
海阳 2019-2-14 17:31 回复TA
增加说明:我将变量如下定义就又可以赋值成功了。 unsigned char data pad=0; 

相关帖子

沙发
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 | 只看该作者
看看变量位于哪个数据区域?

使用特权

评论回复
5
linqing171| | 2019-3-3 20:17 | 只看该作者
工程设置里面的memory model选择成了large?

使用特权

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

本版积分规则

1

主题

4

帖子

0

粉丝