Skip to content
Snippets Groups Projects
eeprom.ino 1013 B
Newer Older
  • Learn to ignore specific revisions
  • #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();
    }