36class FramSpi :
public Storage {
42 unsigned int storageStartingOffset = 0)
43 : Storage(storageStartingOffset), fram(clk, miso, mosi, framCs) {
44 setStateSavePeriod(SUPLA_FRAM_WRITING_PERIOD);
47 explicit FramSpi(int8_t framCs,
unsigned int storageStartingOffset = 0)
48 : Storage(storageStartingOffset), fram(framCs) {
49 setStateSavePeriod(SUPLA_FRAM_WRITING_PERIOD);
54 Serial.println(F(
"Storage: FRAM found"));
56 Serial.println(F(
"Storage: FRAM not found"));
59 return Storage::init();
66 int readStorage(
unsigned int offset,
71 Serial.print(F(
"readStorage: "));
73 Serial.print(F(
"; Read: ["));
75 for (
int i = 0; i < size; i++) {
76 buf[i] = fram.read8(offset + i);
78 Serial.print(
static_cast<unsigned char *
>(buf)[i], HEX);
83 Serial.println(F(
"]"));
88 int writeStorage(
unsigned int offset,
89 const unsigned char *buf,
91 fram.writeEnable(
true);
92 fram.write(offset,
const_cast<uint8_t *
>(buf), size);
93 fram.writeEnable(
false);
94 Serial.print(F(
"Wrote "));
96 Serial.print(F(
" bytes to storage at "));
97 Serial.println(offset);
101 Adafruit_FRAM_SPI fram;