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.
Data EEPROM
Re: Data EEPROM
V principu to velké číslo rozložíš na dva bajty takhle:
Zpátky to pak složíš takhle:
Pak už jen musíš dávat pozor, abys ukládal a četl jen ze sudých adres.
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);
}
Kód: Vybrat vše
unsigned int EEPROM_read_int(unsigned int adresa)
{
return (256 * EEPROM.read(adresa)) + EEPROM.read(adresa + 1);
}
-
- Příspěvky: 1030
- Registrován: 06 zář 2017, 20:04
- Reputation: 0
- Bydliště: Brno
- Kontaktovat uživatele:
Re: Data EEPROM
Existuje lepší metoda
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.
Kód: Vybrat vše
EEPROM.put(address, data)
EEPROM.get(address, 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
Pánové děkuji MOC !!!!!!! Šlape oboje, ale to Put a Get se mi MOC líbí.
Genialita je v jednoduchosti...
Genialita je v jednoduchosti...
Kdo je online
Uživatelé prohlížející si toto fórum: Žádní registrovaní uživatelé a 10 hostů