#include #include #include #include void eeprom_write_byte(uint16_t address, uint8_t byte) { while (EECR & BIT(EEPE)); EEAR = address; EEDR = byte; REG_SETUP_BIT(EECR, EEMPE); REG_SETUP_BIT(EECR, EEPE); } uint8_t eeprom_read_byte(uint16_t address) { while (EECR & BIT(EEPE)); EEAR = address; REG_SETUP_BIT(EECR, EERE); return EEDR; } void eeprom_write_bytes(uint16_t address, uint8_t* data, uint16_t size) { for (uint16_t i = 0; i < size; i++) { eeprom_write_byte(address + i, data[i]); } } void eeprom_read_bytes(uint16_t address, uint8_t* data, uint16_t size) { for (uint16_t i = 0; i < size; i++) { data[i] = eeprom_read_byte(address + i); } }