从EEPROM.get arduino返回错误的数字

时间:2016-05-19 12:06:16

标签: arduino eeprom

在设置功能中,如果单击特定按钮,则清除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有问题吗?

1 个答案:

答案 0 :(得分:0)

这是愚蠢的:) 与EEPROM无关。 我没有给outState提供一个初始值,这么大的数字存储在EEPROM中, 对不起,如果我有你的时间:))