EEPROM返回的号码错误。获取arduino

EEPROM返回的号码错误。获取arduino,arduino,eeprom,Arduino,Eeprom,在设置功能中,如果单击特定按钮,我将清除EEPROM。 在循环函数开始时,我有以下代码: if(millis() - last_sample >= 180){ sampler(); EEPROM.get(stateEEPROMAdress, stateCode); stateCode = getState(stateCode); EEPROM.put(stateEEPROMAdress, stateCode); Serial.println

在设置功能中,如果单击特定按钮,我将清除EEPROM。 在循环函数开始时,我有以下代码:

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);
。。。。和打印代码

我还在我定义的草图开始处:

const int packetEEPROMAdress =  0;
const int stateEEPROMAdress = packetEEPROMAdress + sizeof(int);
这是getState函数。根据传感器值进行简单的状态确定:

int getState(const int stateCode=0){
  int outState;
  //state 0
if(stateCode == 0 &&(fabs(verticalSpeed) < 2 || fabs(relativeAltitude) < 5)&&initializing){
  outState = 0;

  //true should change later to see is launch botton is on
} else
if(missionReady && !initializing && stateCode == 0){
    outState = 1;
}else if(verticalSpeed > 3&&stateCode == 1){
    outState = 2;
} 
//else 
//if(VerticalSpeed < 3 && stateCode == 2){
//  stateCode = 2;
//  //apogee but no code in CDR
//} 
else if(verticalSpeed < 2 &&stateCode == 2){
      outState = 3;
} else if((fabs(relativeAltitude - 450)< 10 || relativeAltitude<440 ) &&stateCode == 3){
        outState = 4;
}else
//true should be replaced with seperation photocell is bright
if(true && stateCode == 4){
  outState = 5;
}else if(relativeAltitude < 3 && fabs(verticalSpeed) < .7 && stateCode == 5  ){
  outState == 6;
  //activate Buzzer stop telemetry
}


return outState;
}
int-getState(const-int-stateCode=0){
内-外状态;
//州0
如果(状态代码==0&&(晶圆厂(垂直速度)<2 | |晶圆厂(相对速度)<5)&&初始化){
超出状态=0;
//true应在以后更改,以查看是否启动botton
}否则
if(任务就绪&&!初始化&&stateCode==0){
超出状态=1;
}否则如果(垂直速度>3&&stateCode==1){
超出状态=2;
} 
//否则
//如果(垂直速度<3&&stateCode==2){
//stateCode=2;
////远地点,但CDR中没有代码
//} 
否则如果(垂直速度<2&&stateCode==2){
超出状态=3;
}否则如果((fabs(relativealtude-450)<10 | | relativealtude这是一件愚蠢的事情:)
与EEPROM无关。
我没有给出一个初始值来超过EEPROM中存储的这么大的数字,
如果我有你的时间,我很抱歉:)

这是件愚蠢的事:) 与EEPROM无关。 我没有给出一个初始值来超过EEPROM中存储的这么大的数字, 对不起,如果我有你的时间:)