问题描述
我有以下代码:(我知道我可以创建一个 for 循环,我删除它只是为了调试..)
#include <Preferences.h>
Preferences preferences;
String highscoreNames[10];
double highscorescores[10];
bool savescore;
void setup(void) {
preferences.begin("highscores",false);
highscoreNames[0] = preferences.getString("name0","--");
highscorescores[0] = preferences.getDouble("score0",0);
highscoreNames[1] = preferences.getString("name1","--");
highscorescores[1] = preferences.getDouble("score1",0);
highscoreNames[2] = preferences.getString("name2","--");
highscorescores[2] = preferences.getDouble("score2",0);
highscoreNames[3] = preferences.getString("name3","--");
highscorescores[3] = preferences.getDouble("score3",0);
highscoreNames[4] = preferences.getString("name4","--");
highscorescores[4] = preferences.getDouble("score4",0);
highscoreNames[5] = preferences.getString("name5","--");
highscorescores[5] = preferences.getDouble("score5",0);
highscoreNames[6] = preferences.getString("name6","--");
highscorescores[6] = preferences.getDouble("score6",0);
highscoreNames[7] = preferences.getString("name7","--");
highscorescores[7] = preferences.getDouble("score7",0);
highscoreNames[8] = preferences.getString("name8","--");
highscorescores[8] = preferences.getDouble("score8",0);
highscoreNames[9] = preferences.getString("name9","--");
highscorescores[9] = preferences.getDouble("score9",0);
preferences.end();
}
void loop(void) {
if (savescore== true)
{
Serial.println("highscore changed");
Serial.println(highscorescores[0]);
preferences.begin("highscores",false);
preferences.putString("name0",highscoreNames[0]);
preferences.putDouble("score0",highscorescores[0]);
preferences.putString("name1",highscoreNames[1]);
preferences.putDouble("score1",highscorescores[1]);
preferences.putString("name2",highscoreNames[2]);
preferences.putDouble("score2",highscorescores[2]);
preferences.putString("name3",highscoreNames[3]);
preferences.putDouble("score3",highscorescores[3]);
preferences.putString("name4",highscoreNames[4]);
preferences.putDouble("score4",highscorescores[4]);
preferences.putString("name5",highscoreNames[5]);
preferences.putDouble("score5",highscorescores[5]);
preferences.putString("name6",highscoreNames[6]);
preferences.putDouble("score6",highscorescores[6]);
preferences.putString("name7",highscoreNames[7]);
preferences.putDouble("score7",highscorescores[7]);
preferences.putString("name8",highscoreNames[8]);
preferences.putDouble("score8",highscorescores[8]);
preferences.putString("name9",highscoreNames[9]);
preferences.putDouble("score9",highscorescores[9]);
preferences.end();
savescore = false;
}
}
我只贴了相关代码。该数组中有值,如果我将写入变量设置为 ture,则应将值写入 eeprom。我希望如果我拔掉电源并在初始化后重新插入,数组应该具有与上次写入 eeprom 时相同的值。不幸的是,事实并非如此。整个数组初始化为 0。
我的代码有什么问题?
解决方法
代码是正确的。问题是板子坏了。一个新的板子用同样的代码工作得很好。