gpt4 book ai didi

保存在 PROGMEM 中的数据类型可以稍后在程序中更改吗?

转载 作者:太空宇宙 更新时间:2023-11-03 23:28:51 25 4
gpt4 key购买 nike

你好,我正在 Arduino 上制作游戏,但我需要存储 2 个全局变量来跟踪分数 currScor 和 hiScor 类型都是 uint32_t 并且为了节省 ram 空间,我将它们标记为 uint32_t currScor PROGMEM = 0; 一旦游戏开始,分数将开始递增,但编译器说我无法分配给常量变量。有没有一种方法可以添加到存储在闪存中的这个变量中?我是否应该考虑使用 EEPROM,尽管我担心太多的写入会烧坏该内存类型。

最佳答案

Arduino 有 4 种类型的内存:

  1. 快闪
  2. EEPROM
  3. 静态内存
  4. CPU 寄存器

无法通过简单的赋值操作 Flash 和 EEPROM。对于 EEPORM 的操作,存在众所周知的库。 Flash/Progmem 的操作也可以从一个程序中进行。 ATMEL 数据表中描述了该技术 AVR105: Power Efficient High Endurance Parameter Storage in Flash Memory .但是我不知道有任何支持此功能的开源库。

如果您想保留 RAM,这很可能不是可行的方法。相反,您应该将字符串和其他大而常量的东西放入 progmem。

关于保存在 PROGMEM 中的数据类型可以稍后在程序中更改吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20334667/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com