mirror of
https://github.com/esp8266/Arduino.git
synced 2025-04-19 23:22:16 +03:00
* Add EEPROM debug printouts, error check to example Add debug printouts when EEPROM calls fail, even if the API doesn't allow returning a success/failure code. Adds error checking to the example to make it explicit that when you call EEPROM::commit(), you need to look at the result code in your code. Fixes #6551 , or would fix it if there was error checking in the MCVE. * Clarify example error message
46 lines
1.1 KiB
C++
46 lines
1.1 KiB
C++
/*
|
|
EEPROM Write
|
|
|
|
Stores values read from analog input 0 into the EEPROM.
|
|
These values will stay in the EEPROM when the board is
|
|
turned off and may be retrieved later by another sketch.
|
|
*/
|
|
|
|
#include <EEPROM.h>
|
|
|
|
// the current address in the EEPROM (i.e. which byte
|
|
// we're going to write to next)
|
|
int addr = 0;
|
|
|
|
void setup() {
|
|
Serial.begin(115200);
|
|
EEPROM.begin(512);
|
|
}
|
|
|
|
void loop() {
|
|
// need to divide by 4 because analog inputs range from
|
|
// 0 to 1023 and each byte of the EEPROM can only hold a
|
|
// value from 0 to 255.
|
|
int val = analogRead(A0) / 4;
|
|
|
|
// write the value to the appropriate byte of the EEPROM.
|
|
// these values will remain there when the board is
|
|
// turned off.
|
|
EEPROM.write(addr, val);
|
|
|
|
// advance to the next address. there are 512 bytes in
|
|
// the EEPROM, so go back to 0 when we hit 512.
|
|
// save all changes to the flash.
|
|
addr = addr + 1;
|
|
if (addr == 512) {
|
|
addr = 0;
|
|
if (EEPROM.commit()) {
|
|
Serial.println("EEPROM successfully committed");
|
|
} else {
|
|
Serial.println("ERROR! EEPROM commit failed");
|
|
}
|
|
}
|
|
|
|
delay(100);
|
|
}
|