OverviewFilesCommitsIssuesDocsReleasesPeers

cthuloid / Arduino / LightArm / eeprom.h

25 lines · c ref:
// EEPROM convenience functions
#include <avr/eeprom.h>

int memcpyToEEPROM(int location, const void *data, int byteCount) {
  const char *p = (const char*)data;
  unsigned char *address = (unsigned char*)location;
  for(int i = 0; i < byteCount; i++) eeprom_write_byte(address+i, p[i]);
  return byteCount;
}

int strcpyToEEPROM(int location, const char *s) {
  unsigned char *address = (unsigned char*)location;
  int i;
  for(i = 0; s[i] != '\0'; i++) eeprom_write_byte(address+i, s[i]);
  eeprom_write_byte(address+i, '\0');
  return i;
}

int memcpyFromEEPROM(int location, void *data, int byteCount) {
  char *p = (char*)data;
  unsigned char *address = (unsigned char*)location;
  for(int i = 0; i < byteCount; i++) p[i] = eeprom_read_byte(address+i);
  return byteCount;
}