Olá

Quando eu gravo na eeprom os numeros 12345, quando leio aparecer na serial 12345 conforme eu gravei, mas quando eu gravo 67890 aparece na serial o valor 2354.

Eu estou unindo os valores dessa forma.

EEPROM.write(0x00, 6);
EEPROM.write(0x01, 7);
EEPROM.write(0x02, 8);
EEPROM.write(0x03, 9);
EEPROM.write(0x04, 0);

int a_1 = EEPROM.read(0x00);
int a_2 = EEPROM.read(0x01);
int a_3 = EEPROM.read(0x02);
int a_4 = EEPROM.read(0x03);
int a_5 = EEPROM.read(0x04);

int uniao_valores = (a_1*10000) + (a_2*1000) + (a_3*100) + (a_4*10) + (a_5*1);

String resultado =  String(uniao_valores);

Serial.print(uniao_valores);

Porque isso esta ocorrendo ?

Valew

Exibições: 184

Respostas a este tópico

Olá,

Mude a linha

int uniao_valores = (a_1*10000) + (a_2*1000) + (a_3*100) + (a_4*10) + (a_5*1);

para 

long uniao_valores = (a_1*10000) + (a_2*1000) + (a_3*100) + (a_4*10) + (a_5*1);

Do jeito que estava a var estava estourando....

Vai ser preciso declarar algumas variáveis como long, mude as linhas: 

int a_1 = EEPROM.read(0x00);
int uniao_valores = (a_1*10000) + (a_2*1000) + (a_3*100) + (a_4*10) + (a_5*1);

para:

long a_1 = EEPROM.read(0x00);

long uniao_valores = (a_1*10000) + (a_2*1000) + (a_3*100) + (a_4*10) + (a_5*1);

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço