agrobot_base/Firmware/Modulos/MemoryService.h

54 lines
1.1 KiB
C
Raw Permalink Normal View History

2023-11-30 00:41:22 +00:00
#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