#include "Enuns.h" #include "EEPROM.h" #ifndef MemoryService #define MemoryService int MaxMemoria = 254; int DigitosValor = 5; #define EEPROM_SIZE 512 void IniciarMemoria() { EEPROM.begin(EEPROM_SIZE); } void LimparMemoria() { for (int i = 0; i < MaxMemoria; i++) { EEPROM.write(i, '0'); EEPROM.commit(); } } int LerMemoria(int Endereco) { int ValorLido = 0; String ValorLidoStr = ""; for (int i = Endereco; i < (Endereco + DigitosValor); i++) { ValorLidoStr += (char)EEPROM.read(i); } ValorLido = ValorLidoStr.toInt(); return ValorLido; } bool GravarMemoria(int Endereco, int Valor) { String ValorGravar = (String)Valor; if (Endereco < 0 || (Endereco + ValorGravar.length()) > MaxMemoria || Endereco > MaxMemoria) { return false; } int idx = 0; for (int i = Endereco; i < (Endereco + DigitosValor); i++) { char V = '0'; int PIndex = (DigitosValor - ValorGravar.length()); if (PIndex <= idx) { V = ValorGravar[idx - PIndex]; } EEPROM.write(i, V); idx++; } EEPROM.commit(); return true; } #endif