找回密码
 立即注册
查看: 674|回复: 12

关于双DPTR的使用问题:

[复制链接]
  • 打卡等级:初来乍到
  • 打卡总天数:1
  • 最近打卡:2024-11-12 14:57:21

4

主题

9

回帖

74

积分

注册会员

积分
74
发表于 2024-11-12 14:57:02 | 显示全部楼层 |阅读模式
本帖最后由 ZJYYL 于 2024-11-14 10:20 编辑

单片机型号:8G2K32S2     
        MOV  P_SW2,#80H
        MOV  DPS,#0B8H           ;DP0自动递增,DP11递减 ,使能切换,使能递增,选择DPTR0
        MOV  DPTR,#MD0
        MOVX  A,@DPTR
        MOVX @DPTR,A

        MOVX  A,@DPTR
        MOVX @DPTR,A              ;DPTR0指向的两字节数据存入MD0,MD1
        MOV  DPS,#00H
        MOV P_SW2,#00H
老师们,这么用是哪里有问题?发现这个会导致扩展RAM数据出错,因为扩展RAM使用DPTR0来操作的。


回复

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:38
  • 最近打卡:2025-04-29 08:28:25
已绑定手机

17

主题

446

回帖

1173

积分

金牌会员

积分
1173
发表于 2024-11-14 09:34:58 | 显示全部楼层
251架构已经不需要双数据指针这些了,本身的指针操作已经很强了
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:1
  • 最近打卡:2024-11-12 14:57:21

4

主题

9

回帖

74

积分

注册会员

积分
74
发表于 2024-11-14 10:19:55 | 显示全部楼层
bkeu*** 发表于 2024-11-14 09:34
251架构已经不需要双数据指针这些了,本身的指针操作已经很强了

8G2K32S2
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:38
  • 最近打卡:2025-04-29 08:28:25
已绑定手机

17

主题

446

回帖

1173

积分

金牌会员

积分
1173
发表于 2024-11-14 10:36:22 | 显示全部楼层
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:312
  • 最近打卡:2025-03-11 13:20:13

54

主题

1327

回帖

5395

积分

荣誉版主

积分
5395
发表于 2024-11-14 10:42:29 | 显示全部楼层
关键时刻关总中断EA即可。
即这段程序的前后加开/关总中断
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:53
  • 最近打卡:2024-12-27 08:18:49

0

主题

132

回帖

136

积分

注册会员

积分
136
发表于 2024-11-14 11:44:42 | 显示全部楼层
学习
回复

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:1
  • 最近打卡:2024-11-12 14:57:21

4

主题

9

回帖

74

积分

注册会员

积分
74
发表于 2024-11-15 15:13:30 | 显示全部楼层
LAO*** 发表于 2024-11-14 10:42
关键时刻关总中断EA即可。
即这段程序的前后加开/关总中断

中断程序里有DPH DPL堆栈出栈,会影响这个么?关中断不太好,影响别的程序执行

点评

不想关总中断, 那么请在所有的中断程序中, 入口外, 将 dph1,dpl1,dps 压栈, 并且设置 DPS =00H, 在退出中断时, 将 dph1,dpl1,dps 弹出堆栈恢复. 这样也行.  详情 回复 发表于 2024-11-15 19:40
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:312
  • 最近打卡:2025-03-11 13:20:13

54

主题

1327

回帖

5395

积分

荣誉版主

积分
5395
发表于 2024-11-15 19:40:12 | 显示全部楼层
ZJY*** 发表于 2024-11-15 15:13
中断程序里有DPH DPL堆栈出栈,会影响这个么?关中断不太好,影响别的程序执行 ...

不想关总中断, 那么请在所有的中断程序中, 入口外, 将 dph1,dpl1,dps 压栈, 并且设置 DPS =00H, 在退出中断时, 将 dph1,dpl1,dps 弹出堆栈恢复.
这样也行.
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:453
  • 最近打卡:2025-05-02 08:15:40
已绑定手机

13

主题

1257

回帖

2975

积分

金牌会员

积分
2975
发表于 2024-11-15 21:44:30 | 显示全部楼层
用keil C是不是就没办法用双DPTR这个buffer了?
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:1
  • 最近打卡:2024-11-12 14:57:21

4

主题

9

回帖

74

积分

注册会员

积分
74
发表于 2024-11-16 19:34:17 | 显示全部楼层
LAO*** 发表于 2024-11-15 19:40
不想关总中断, 那么请在所有的中断程序中, 入口外, 将 dph1,dpl1,dps 压栈, 并且设置 DPS =00H, 在退出中 ...

谢谢,看来只堆栈DPH DPL 是不够的,我试试
回复 支持 反对

使用道具 举报 送花

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

本版积分规则

QQ|手机版|小黑屋|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

GMT+8, 2025-5-2 09:08 , Processed in 0.136762 second(s), 121 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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