在设置功能中,如果单击特定按钮,则清除EEPROM。 在开始的循环函数中我有这个代码:
embedded grails domain property
和一堆采样代码。 然后在循环结束时我有:
if(millis() - last_sample >= 180){
sampler();
EEPROM.get(stateEEPROMAdress, stateCode);
stateCode = getState(stateCode);
EEPROM.put(stateEEPROMAdress, stateCode);
Serial.println(stateCode);
}
....和打印代码......
我也在我定义的草图的开头:
if(millis() - last_xbee >= 900){
EEPROM.get(packetEEPROMAdress,packetCount );
EEPROM.get(stateEEPROMAdress,stateCode);
if(!initializing || (stateCode!= 0 && stateCode != 1)){
telemetry[2] = packetCount++;}
telemetry[21] =stateCode;
EEPROM.put(packetEEPROMAdress, packetCount);
这是getState函数。传感器值的简单状态确定:
const int packetEEPROMAdress = 0;
const int stateEEPROMAdress = packetEEPROMAdress + sizeof(int);
当状态为0时,一切都很好。当我发送命令并且状态变为1.在出现1的几个循环之后。 EEPROM中的数字变为8663。寻址EEPROM有问题吗?
答案 0 :(得分:0)
这是愚蠢的:) 与EEPROM无关。 我没有给outState提供一个初始值,这么大的数字存储在EEPROM中, 对不起,如果我有你的时间:))