Boa noite garagistas.
Estou apanhando aqui com algo que deve ser muito simples, mas eu não sei como fazer. Estou tentando separar os primeiros quatro bytes da minha EEPROM(0x00, 0x01, 0x02, 0x03) e guardar um inteiro, depois quero pegar estes quatro bytes e transformar no inteiro novamente. Alguém tem alguma ideia de como fazer isso?
Pessoal estou mexendo em C, mas se vocês tiverem algum exemplo do próprio arduíno será muito bem vindo também.
Desde já eu agradeço a atenção de vocês. Obrigado.
Tags:
As respostas para este tópico estão encerradas.
void setFloatEEPROM(int posicao, float valor){
float num = valor;
float *P_num = #
byte *P_num2 = (byte*)P_num;
byte a = *P_num2;
byte b = *(P_num2 + 1);
byte c = *(P_num2 + 2);
byte d = *(P_num2 + 3);
EEPROM.write(posicao, a);
EEPROM.write(posicao+1, b);
EEPROM.write(posicao+2, c);
EEPROM.write(posicao+3, d);
}
float getFloatEEPROM(int posicao){
byte a = EEPROM.read(posicao);
byte b = EEPROM.read(posicao+1);
byte c = EEPROM.read(posicao+2);
byte d = EEPROM.read(posicao+3);
float result = 0;
float *P_num = &result;
byte *P_num2 = (byte*)P_num;
*P_num2 = (byte) a;
*P_num2++;
*P_num2 = (byte) b;
*P_num2++;
*P_num2 = (byte) c;
*P_num2++;
*P_num2 = (byte) d;
return (float)result;
}
Esses 2 métodos basicamente vc vai passar o valor e a primeira posição da EEPROM em q vc quer gravar, e depois pra resgatar os dados é so vc passar a primeira posição novamente q ele te retorna o valor.
OBS.: Eu fiz pra float, que era pra minha necessidade na época, mas pra alterar pra inteiro é so mudar o tipo das variáveis.
Espero ter ajudado.
Att.
Valeu Diego ! Brigadão.
Bem-vindo a
Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)
© 2024 Criado por Marcelo Rodrigues. Ativado por