#include <EEPROM.h> // save current machine pos to EEPROM void pos_to_eeprom() { unsigned int addr = 0; Serial.println("saving pos to EEPROM"); for (byte ax=0;ax<max_ax;ax++) { byte b=(pos[ax] & 0xff000000) >> 24; //HSB first EEPROM.write(addr, b);addr++; b=(pos[ax] & 0x00ff0000) >> 16; EEPROM.write(addr, b);addr++; b=(pos[ax] & 0x0000ff00) >> 8; EEPROM.write(addr, b);addr++; b=(pos[ax] & 0x000000ff); EEPROM.write(addr, b);addr++; } } // load last machine pos from EEPROM on startup void pos_from_eeprom() { Serial.println("loading pos from EEPROM"); Serial.println("pos loaded:"); unsigned int addr = 0; int result; for (byte ax=0;ax<max_ax;ax++) { result=EEPROM.read(addr)<<24; addr++; result=result | (EEPROM.read(addr)<<16); addr++; result=result | (EEPROM.read(addr)<<8); addr++; result=result | (EEPROM.read(addr)); addr++; pos[ax]=result; } print_positions(); }