首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从程序存储器( AVR ATmega16 )读取数据序列

从程序存储器( AVR ATmega16 )读取数据序列
EN

Stack Overflow用户
提问于 2017-04-05 07:13:28
回答 1查看 977关注 0票数 1

我正在使用ATmega16 7为AVR ATmega16微控制器编写这段代码,我试图从程序内存中读取一些数据并使用它们。我知道我必须使用Z寄存器来指向程序内存,预存储的数据由汇编程序的标签"BCDTo7_Seg“识别。它确实读取了该表中的第一个数字(我可以使用调试器看到这个过程),但是,当我发布增量Z寄存器时,地址增加了,但读取的值仍然相同!希望有人能帮我。下面是代码的一部分:

代码语言:javascript
复制
    /* Simply start reading from program memory */
    /* The reading from program memory must be done with the starting address: BCDTo7_Seg LABEL */

    /* INITIALIZE Z POINTER */
    ldi ZH,high(BCDTo7_Seg << 1)
    ldi ZL,low(BCDTo7_Seg << 1)
    clr R23
    /* R23 contains the data must be written to the 7 segment */
    /* Post Increment Z after reading each number */
    lpm R23,Z+
    /* decrement R16 */
    dec R16
    /* Check the loop end point */
    brne R_W
    rjmp start
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-04-06 04:53:16

每次执行时,它都会在开头设置指针。

代码语言:javascript
复制
ldi ZH,high(BCDTo7_Seg << 1)
ldi ZL,low(BCDTo7_Seg << 1)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43224284

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档