ESP32-Preferences.h-将值存储到内存中



我有一个ESP32,使用Arduino IDE编程。在我的代码中,我有两个变量:sName(字符串(和nScore(双精度(。这对变量,需要写入EEPROM到高分命名空间中。到目前为止,打开名称空间并编写值是很容易的。。

但棘手的部分来了:名称空间highscore有20个值:10个名称和10个分数。只有当值高于已经存在的值时,我才需要将其写入命名空间,并将其添加到高分表中的正确位置,从而移动所有其他值。

我该怎么做?目前,我正在考虑在启动时加载所有值,并将其存储在2个数组中。然后,每当数组中发生变化时,都要将其写下来。

但我不确定这样做是否恰当。

假设您希望最小化对EEPROM的写入次数,最好的方法是分配EEPROM的10个地址,每个高芯保持器一个,然后在EEPROM中有一个单独的变量来表示高芯的顺序。

eg: 
ADD1: NameA
ADD2: NameB
ADD3: NameC
....

然后是

int ord = 231

这意味着1.姓名C2.姓名A3.名称B…

这样,如果有新玩家进入记分牌,只重写得分最低的玩家的地址(例如:order 3->NameB(,并重新排列ord变量。

由于您有10个条目,您的ord变量可能类似于7562931048,其中0将是最高得分手。

在任何情况下,你肯定必须在启动时(或稍后(将所有分数(可能只是数字(加载到ram中进行比较。

相关内容

  • 没有找到相关文章

最新更新