unsigned char EEPROM_read(unsigned int address) { /* Wait for completion of previous write */ while(!(NVM.STATUS & NVM_NVMBUSY_bm )); /* Set up address register */ NVM.ADDR0 = address; /* Start eeprom read by writing EERE */ NVM.STATUS |= NVM_CMD_READ_EEPROM_gc ; /* Return data from data register */ return NVM.DATA0; }