定义数据

[复制链接]
 楼主| LingTian 发表于 2014-8-6 15:34 | 显示全部楼层 |阅读模式
对于 PIC16 系列,未使用的空间数据为 0X3FFF, 在XC8中,如何在特定的地址定义不大于 0X3FFF的数据?
 楼主| LingTian 发表于 2014-8-6 15:37 | 显示全部楼层
XC8中对应 MPASM 中的 DW 。
yewuyi 发表于 2014-8-6 16:39 | 显示全部楼层
你为何要动它?

这个0X3FFF对应的机器码是一个很特殊的ASM指令,如果没有非常特别的原因的话,建议不动。

很久以前似乎有一个fill宏指令,但后来就没有了,但在一些编程器软件中可以设置空白区填充,例如XELTEK的编程器软件,你可以自己随便填写空白区填充的数字。

评分

参与人数 1威望 +3 收起 理由
LingTian + 3

查看全部评分

yklstudent 发表于 2014-8-6 16:43 | 显示全部楼层
C
const uint8_t var @ 0x2000 = 0x55;
不过楼主似乎没搞清楚一些东西
自己去弄下就知道了

评分

参与人数 1威望 +1 收起 理由
LingTian + 1

查看全部评分

 楼主| LingTian 发表于 2014-8-6 19:13 | 显示全部楼层
看来是没有这样的指令了.
lanmp 发表于 2014-8-6 23:51 | 显示全部楼层
PIC16的数据总线只有8bit,所以大于255的一定不是数据。
 楼主| LingTian 发表于 2014-8-7 11:48 | 显示全部楼层
看你怎么理解了,你不可以说8bits 的系统没有 INT? LONG INT?
 楼主| LingTian 发表于 2014-8-7 11:50 | 显示全部楼层
本来就想存个 AD 的结果,10 bits  为 0x3ff, 省点空间。
yklstudent 发表于 2014-8-7 12:07 | 显示全部楼层
flash支持字节擦除写的话 没什么不可以用的
不过为什么不用内部eeprom呢?
lanmp 发表于 2014-8-7 19:58 来自手机 | 显示全部楼层
LingTian 发表于 2014-8-7 11:48
看你怎么理解了,你不可以说8bits 的系统没有 INT? LONG INT?

对你来说是,很多人吧自己的名字写在空白flash地址上。对cpu的数据总线来说不是,因为他只能看见8位,读写都是。对他来说0x1ff和0xff是一样的。
yewuyi 发表于 2014-8-8 08:23 | 显示全部楼层
lanmp 发表于 2014-8-6 23:51
PIC16的数据总线只有8bit,所以大于255的一定不是数据。

不一定。
lanmp 发表于 2014-8-8 10:42 来自手机 | 显示全部楼层
yewuyi 发表于 2014-8-8 08:23
不一定。

举个例子
yewuyi 发表于 2014-8-8 12:00 | 显示全部楼层
lanmp 发表于 2014-8-8 10:42
举个例子

1、PIC的操作码、地址码或者数据是混合编码的。
2、PIC不仅有8位,还有16位、32位产品,混合编码的位长都是不一样的。
lanmp 发表于 2014-8-8 13:11 | 显示全部楼层
yewuyi 发表于 2014-8-8 12:00
1、PIC的操作码、地址码或者数据是混合编码的。
2、PIC不仅有8位,还有16位、32位产品,混合编码的位长都 ...

1. 混合编码中的数据有超过8位的么?
2. 不是在说PIC18么?
yewuyi 发表于 2014-8-8 13:31 | 显示全部楼层
lanmp 发表于 2014-8-8 13:11
1. 混合编码中的数据有超过8位的么?
2. 不是在说PIC18么?

对于PIC16来说,编码中操作数的位长<=8,但这不表示PIC16的数据总线宽度是8位啊!

因为LZ的帖子写的是PIC16,而你回的是:PIC,这有可能产生误解,所以我回复:不一定。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:有苏州的朋友吗?请加我。 18912798761@189.cn

15

主题

254

帖子

0

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