Stránka 1 z 1
Data EEPROM
Napsal: 08 srp 2020, 21:40
od Ludek
Zdravím, zasekl jsem se na triviálnosti.
Potřebuji uložit a číst do EEPROM Arduina číslo do 65536 - tedy unsignet int. Jak se ukládají a čtou 16bit čísla?
Mám proměnnou např. Suma = 50 000. Chci jí uložit do EPROM, třeba na adresu 100 a pak zase načíst do proměnné Kontrola.
díky za radu.
Re: Data EEPROM
Napsal: 08 srp 2020, 22:26
od AstroMiK
V principu to velké číslo rozložíš na dva bajty takhle:
Kód: Vybrat vše
void EEPROM_write_int(unsigned int adresa, unsigned int data)
{
EEPROM.write(adresa , data >> 8);
EEPROM.write(adresa + 1, data % 256);
}
Zpátky to pak složíš takhle:
Kód: Vybrat vše
unsigned int EEPROM_read_int(unsigned int adresa)
{
return (256 * EEPROM.read(adresa)) + EEPROM.read(adresa + 1);
}
Pak už jen musíš dávat pozor, abys ukládal a četl jen ze sudých adres.
Re: Data EEPROM
Napsal: 09 srp 2020, 01:54
od jankop
Existuje lepší metoda
Kód: Vybrat vše
EEPROM.put(address, data)
EEPROM.get(address, data)
První uloží do EEPROM ve formátu deklarovaném pro "data" a druhé přečte do formátu deklarovaného pro "data".
Může to být třeba struct nebo float nebo cokoliv jiného. Bonusem je, že funkce EEPROM.put(address, data) používá funkci EEPROM.update() a tak dochází k menšímu opotřebení EEPROM.
Re: Data EEPROM
Napsal: 09 srp 2020, 06:49
od Ludek
Pánové děkuji MOC !!!!!!! Šlape oboje, ale to Put a Get se mi MOC líbí.
Genialita je v jednoduchosti...