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(); } }