迪文科技论坛

 找回密码
 立即注册
搜索
12
返回列表 发新帖
楼主: 精灵王

【提问】求助DGUS变量读取数据问题

[复制链接]

0

主题

8

回帖

43

积分

新手上路

Rank: 1

积分
43
 楼主| 发表于 2024-9-6 10:13:17 | 显示全部楼层
本帖最后由 精灵王 于 2024-9-6 10:39 编辑
Rye4869cjxy 发表于 2024-9-6 08:57
您好,这个函数是您自己写的嘛,如果想写双字完全没必要新写一个函数,你定义一个双字变量也可以直接通过wr ...

我自己写的。
只要把变量定义成32位的,你说的这个函数也不行,也影响相邻地址的值。比如往0x2002写入数据0x11223344,0x2002的地址是0x11223344,那么0x2001地址上的值会变成0x33440000,0x2003的地址上的值会编程0x1122,大概是这样,具体记不清楚了,你们可以实测一下。
回复

使用道具 举报

0

主题

12

回帖

69

积分

注册会员

Rank: 2

积分
69
发表于 2024-9-6 11:38:04 | 显示全部楼层
是这样的  地址是字地址,一个字地址就存一个字的长度,您说的0x2002写入0x11223344,实际上是从0x2002首地址开始写了两个字,也就是高字0x1122写在了0x2002,低字0x3344写在了0x2003.使用给的这个函数应该是不会影响前一个地址,如果有影响,那就是这个函数也没写好,可以换一个函数
回复

使用道具 举报

0

主题

8

回帖

43

积分

新手上路

Rank: 1

积分
43
 楼主| 发表于 2024-9-6 12:01:51 | 显示全部楼层
Rye4869cjxy 发表于 2024-9-6 11:38
是这样的  地址是字地址,一个字地址就存一个字的长度,您说的0x2002写入0x11223344,实际上是从0x2002首地 ...

那不对,如果需要往0x2002(屏幕上的地址)写入0x11223344,那不能也往0x2003写数据啊。你这解释印证了我说的问题,可有处理方法?
回复

使用道具 举报

0

主题

12

回帖

69

积分

注册会员

Rank: 2

积分
69
发表于 2024-9-6 14:15:34 | 显示全部楼层
精灵王 发表于 2024-9-6 12:01
那不对,如果需要往0x2002(屏幕上的地址)写入0x11223344,那不能也往0x2003写数据啊。你这解释印证了我 ...

0x2002是字地址,只能装的下一个字的长度,你0x11223344是两个字的长度。你不想写到0x2003就不要写超过一个字的长度0xFFFF
回复

使用道具 举报

0

主题

8

回帖

43

积分

新手上路

Rank: 1

积分
43
 楼主| 发表于 2024-9-6 16:04:17 | 显示全部楼层
Rye4869cjxy 发表于 2024-9-6 14:15
0x2002是字地址,只能装的下一个字的长度,你0x11223344是两个字的长度。你不想写到0x2003就不要写超过一 ...

不是啊,0x2002屏幕上的地址可以装32位的数据啊,也可以写进去,只是会影响0x2001和0x2003这两个地址的值,我是想请教下,如何既能在0x2002的地址上装载32位的数据而不影响0x2001和0x2003这两个地址的值。如果按照你的说法,无法在C51里面实现既能在0x2002的地址上装载32位的数据,又不影响x2001和0x2003这两个地址的值吗?
回复

使用道具 举报

0

主题

12

回帖

69

积分

注册会员

Rank: 2

积分
69
发表于 2024-9-6 16:20:05 | 显示全部楼层
0x2002一个字地址是装16位的数据,是装不了32位的数据,写32位的数据会影响到2003的地址
回复

使用道具 举报

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

本版积分规则

QQ|Archiver|手机版|小黑屋|迪文科技论坛 ( 京ICP备05033781号-1 )

GMT+8, 2024-11-25 04:16 , Processed in 0.193755 second(s), 18 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表