Ejemplo n.º 1
0
void EEPROM_RetrieveSettings(bool def, bool printout)
{  // if def=true, the default values will be used

    int i=EEPROM_OFFSET;
    char stored_ver[4];
    char ver[4]=EEPROM_VERSION;
    unsigned long ul_help = 0;
    
    EEPROM_readAnything(i,stored_ver); //read stored version
    if ((!def)&&(strncmp(ver,stored_ver,3)==0)) 
    {   // version number match
      EEPROM_readAnything(i,axis_steps_per_unit);  
      EEPROM_readAnything(i,max_feedrate);  
      EEPROM_readAnything(i,max_acceleration_units_per_sq_second);
      EEPROM_readAnything(i,move_acceleration);
      EEPROM_readAnything(i,retract_acceleration);
      EEPROM_readAnything(i,minimumfeedrate);
      EEPROM_readAnything(i,mintravelfeedrate);
      EEPROM_readAnything(i,ul_help);  //min Segmenttime --> not used yet
      EEPROM_readAnything(i,max_xy_jerk);
      EEPROM_readAnything(i,max_z_jerk);

      unsigned int Kp,Ki,Kd;
      EEPROM_readAnything(i,Kp);
      EEPROM_readAnything(i,Ki);
      EEPROM_readAnything(i,Kd);

      showString(PSTR("Stored settings retreived\r\n"));
    }
    else 
    {

      float tmp1[]=_AXIS_STEP_PER_UNIT;
      float tmp2[]=_MAX_FEEDRATE;
      long tmp3[]=_MAX_ACCELERATION_UNITS_PER_SQ_SECOND;
      for (short i=0;i<4;i++) 
      {
        axis_steps_per_unit[i]=tmp1[i];  
        max_feedrate[i]=tmp2[i];  
        max_acceleration_units_per_sq_second[i]=tmp3[i];
      }
      move_acceleration=_ACCELERATION;
      retract_acceleration=_RETRACT_ACCELERATION;
      minimumfeedrate=DEFAULT_MINIMUMFEEDRATE;
      mintravelfeedrate=DEFAULT_MINTRAVELFEEDRATE;
      max_xy_jerk=_MAX_XY_JERK;
      max_z_jerk=_MAX_Z_JERK;

      showString(PSTR("Using Default settings\r\n"));
    }

    if(printout)
    {
      EEPROM_printSettings();
    }
}  
void EEPROM_RetrieveSettings(bool def, bool printout)
{  // if def=true, the default values will be used

    int i=EEPROM_OFFSET;
    char stored_ver[4];
    char ver[4]=EEPROM_VERSION;
    
    EEPROM_read_setting(EEPROM_OFFSET,stored_ver); //read stored version
    if ((!def)&&(strncmp(ver,stored_ver,3)==0))
    {   // version number match
      EEPROM_read_setting(axis_steps_per_unit_address, axis_steps_per_unit);
      EEPROM_read_setting(max_feedrate_address, max_feedrate);
      EEPROM_read_setting(max_acceleration_units_per_sq_second_address, max_acceleration_units_per_sq_second);
      EEPROM_read_setting(move_acceleration_address, move_acceleration);
      EEPROM_read_setting(retract_acceleration_address, retract_acceleration);
      EEPROM_read_setting(minimumfeedrate_address, minimumfeedrate);
      EEPROM_read_setting(mintravelfeedrate_address, mintravelfeedrate);
      EEPROM_read_setting(min_seg_time_address, min_seg_time);  //min Segmenttime --> not used yet
      EEPROM_read_setting(max_xy_jerk_address, max_xy_jerk);
      EEPROM_read_setting(max_z_jerk_address, max_z_jerk);
      EEPROM_read_setting(max_e_jerk_address, max_e_jerk);

      #ifdef PIDTEMP
       EEPROM_read_setting(Kp_address, PID_Kp);
       EEPROM_read_setting(Ki_address, PID_Ki);
       EEPROM_read_setting(Kd_address, PID_Kd);
      #endif

      showString(PSTR("Stored settings retreived\r\n"));
    }
    else 
    {

      float tmp1[]=_AXIS_STEP_PER_UNIT;
      float tmp2[]=_MAX_FEEDRATE;
      long tmp3[]=_MAX_ACCELERATION_UNITS_PER_SQ_SECOND;
      for (short i=0;i<4;i++) 
      {
        axis_steps_per_unit[i]=tmp1[i];  
        max_feedrate[i]=tmp2[i];  
        max_acceleration_units_per_sq_second[i]=tmp3[i];
      }
      move_acceleration=_ACCELERATION;
      retract_acceleration=_RETRACT_ACCELERATION;
      minimumfeedrate=DEFAULT_MINIMUMFEEDRATE;
      mintravelfeedrate=DEFAULT_MINTRAVELFEEDRATE;
      max_xy_jerk=_MAX_XY_JERK;
      max_z_jerk=_MAX_Z_JERK;
      max_e_jerk=_MAX_E_JERK;
      min_seg_time=_MIN_SEG_TIME;
      
      #ifdef PIDTEMP
       PID_Kp = PID_PGAIN;
       PID_Ki = PID_IGAIN;
       PID_Kd = PID_DGAIN;
      #endif

      showString(PSTR("Using Default settings\r\n"));
    }
    
    if(printout)
    {
      EEPROM_printSettings();
    }
}