42 lines
698 B
C++
42 lines
698 B
C++
|
|
||
|
#include <Wire.h>
|
||
|
#include <Arduino.h>
|
||
|
#include <SparkFun_External_EEPROM.h>
|
||
|
#include "eeprom.hpp"
|
||
|
|
||
|
constexpr uint8_t ADDR = 0x50;
|
||
|
constexpr unsigned DELAY = 100;
|
||
|
|
||
|
static ExternalEEPROM mem;
|
||
|
|
||
|
static unsigned at = 0;
|
||
|
|
||
|
void eeprom::init() {
|
||
|
Wire.setClock(400000);
|
||
|
Wire.begin();
|
||
|
mem.setMemoryType(1025);
|
||
|
mem.begin();
|
||
|
}
|
||
|
|
||
|
unsigned eeprom::length() {
|
||
|
return mem.length();
|
||
|
}
|
||
|
|
||
|
void eeprom::jump(unsigned loc) {
|
||
|
at = loc;
|
||
|
}
|
||
|
|
||
|
void eeprom::read(char* data, unsigned len) {
|
||
|
mem.read(at, data, len);
|
||
|
at += len;
|
||
|
}
|
||
|
|
||
|
void eeprom::read(unsigned loc, char* data, unsigned len) {
|
||
|
mem.read(loc, data, len);
|
||
|
}
|
||
|
|
||
|
void eeprom::write(unsigned loc, const char* data, unsigned len) {
|
||
|
mem.write(loc, data, len);
|
||
|
}
|
||
|
|