0

有人能指点我一个很好的教程,解释在 Atmega 328P 的程序闪存中存储数据吗?我计划以 1 Mhz 的频率从 portB 接收 8 位数据,我想将接收到的前 19200 字节数据存储在具有 32k 内存的程序闪存中。我是 AVR 组件的新手,在阅读了所有我可以用谷歌搜索的内容后我有点困惑,因此非常感谢直接回答或阅读一些好的教程。

截至目前,我已将其编码为

LDI XL, LOW(NRWW_START_ADDR)
LDI XH, HIGH(NRWW_START_ADDR)
loadBuffer:
IN R0,PORTB
ST X+,R0
CPI XH,0x4B
BRNE loadBuffer

但我不确定这是否是正确的做法。我不想覆盖引导加载程序。另外,我正在寻找汇编程序中的解决方案。

非常感谢任何帮助或指针。

4

1 回答 1

1

两个注意事项:

  1. 在这个例子中你犯了一个常见的错误:在同一个端口上混洗输入和输出。如果要从B端口读取,则必须读取PINB;如果你想写信给它,你必须写信给PORTB. (假设DDRB是之前设置的。)

  2. 您确定要使用闪存进行数据存储吗?数据表说:

    写/擦除周期:10,000

于 2015-07-05T23:05:09.057 回答