4 cijfers op EEPROM, highbyte/lowbyte??
5 berichten
• Pagina 1 van 1
4 cijfers op EEPROM, highbyte/lowbyte??
Hallo Mensen,
Ik heb een vraag...
Ik wil een 4 cijferig getal opslaan op de eeprom van de arduino.
Helaas kunnen hier per adres maar 3 getallen op...
Nu heb ik al iets geprobeerd met de highbyte en de lowbyte
Zou iemand mij dit kunnen uitleggen?
mvg Nick
Ik heb een vraag...
Ik wil een 4 cijferig getal opslaan op de eeprom van de arduino.
Helaas kunnen hier per adres maar 3 getallen op...
Nu heb ik al iets geprobeerd met de highbyte en de lowbyte
Zou iemand mij dit kunnen uitleggen?
mvg Nick
Advertisement
Re: 4 cijfers op EEPROM, highbyte/lowbyte??
Hallo.
Kun je laten zien wat je geprobeerd hebt, dat praat gemakkelijker.
Wat is een vier cijferig getal bijvoorbeeld. Bedoel je een leesbare tekst in ASCII, of een integer die tot 9999 kan lopen, of vier aparte integers ?
Met EEPROM.write() en EEPROM.read() kun je één byte schrijven en lezen. Een byte is één teken, of een cijfer van 0...255.
Met EEPROM.put() en EEPROM.get() kun je een heel blok data schrijven en lezen.
Kun je laten zien wat je geprobeerd hebt, dat praat gemakkelijker.
Wat is een vier cijferig getal bijvoorbeeld. Bedoel je een leesbare tekst in ASCII, of een integer die tot 9999 kan lopen, of vier aparte integers ?
Met EEPROM.write() en EEPROM.read() kun je één byte schrijven en lezen. Een byte is één teken, of een cijfer van 0...255.
Met EEPROM.put() en EEPROM.get() kun je een heel blok data schrijven en lezen.
Re: 4 cijfers op EEPROM, highbyte/lowbyte??
Ja hoor
ik wil een integer opslaan van 4 getallen.
Ik maak een electronisch slot met een knop waarmee men een nieuw wachtwoord kan instellen.
Maar zodra men de arduino opstart is dit nieuwe wachtwoord natuurlijk weer gereset...
'password' is de variabele waarin het wachtwoord staat.
Hier is het stukje waarin het wachtwoord verander
en aan het begin van de loop wil ik dit neerzetten:
dit alles zou werken met een wachtwoord van 3 cijfers
maar ik wil het proberen met 4
ik wil een integer opslaan van 4 getallen.
Ik maak een electronisch slot met een knop waarmee men een nieuw wachtwoord kan instellen.
Maar zodra men de arduino opstart is dit nieuwe wachtwoord natuurlijk weer gereset...
'password' is de variabele waarin het wachtwoord staat.
Hier is het stukje waarin het wachtwoord verander
- Code: Alles selecteren
password = tempPassword; // Nieuw wachtwoord opgeslagen
EEPROM.put(100,password);
en aan het begin van de loop wil ik dit neerzetten:
- Code: Alles selecteren
password = EEPROM.read(100);
dit alles zou werken met een wachtwoord van 3 cijfers
maar ik wil het proberen met 4
Re: 4 cijfers op EEPROM, highbyte/lowbyte??
De EEPROM.read() hoort niet bij de EEPROM.put().
Of .read() en .write().
Of .put() en .get().
Lees de reference eens door. Begin hier: https://www.arduino.cc/en/Reference/EEPROM
Ik heb nog steeds moeite met je integer van 4 getallen.
Stel dat je een Arduino Uno of Mega hebt, dan is een 'int' een 16-bit signed integer en daar past natuurlijk een getal in van vier cijfers. Met vier cijfers bedoel ik een waarde van 0 tot en met 9999.
Wanneer je zowel een .put() als een .get() met een integer doet, dan zou het goed moeten gaan.
Of .read() en .write().
Of .put() en .get().
Lees de reference eens door. Begin hier: https://www.arduino.cc/en/Reference/EEPROM
Ik heb nog steeds moeite met je integer van 4 getallen.
Stel dat je een Arduino Uno of Mega hebt, dan is een 'int' een 16-bit signed integer en daar past natuurlijk een getal in van vier cijfers. Met vier cijfers bedoel ik een waarde van 0 tot en met 9999.
Wanneer je zowel een .put() als een .get() met een integer doet, dan zou het goed moeten gaan.
Re: 4 cijfers op EEPROM, highbyte/lowbyte??
Normaal kun je maar 1 byte (0-255) naar een eeprom adres schrijven.
Ik heb zoiets ooit gedaan door het getal in 2 stukken op te delen en in 2 eeprom adressen op te slaan.
Waarin breakreleasedelay het getal bevat dat ik op wil slaan.
Zorg wel dat breakreleasedelay niet groter kan zijn dan 4 cijfers (in theorie niet groter dan 25599) anders gaat het fout.
Natuurlijk moet je daarna de boel weer bij elkaar optellen:
Ik heb zoiets ooit gedaan door het getal in 2 stukken op te delen en in 2 eeprom adressen op te slaan.
- Code: Alles selecteren
void writeeeprombreakreleasedelay() {
int eepromhigh = breakreleasedelay / 100;
int eepromlow = breakreleasedelay - (eepromhigh *100);
int eepromadres = (2);
EEPROM.write(eepromadres, eepromlow);
EEPROM.write(eepromadres + 1, eepromhigh);
}
Waarin breakreleasedelay het getal bevat dat ik op wil slaan.
Zorg wel dat breakreleasedelay niet groter kan zijn dan 4 cijfers (in theorie niet groter dan 25599) anders gaat het fout.
Natuurlijk moet je daarna de boel weer bij elkaar optellen:
- Code: Alles selecteren
void readeeprombreakreleasedelay() {
int eepromadres = (2);
breakreleasedelay = (EEPROM.read(eepromadres) + (EEPROM.read(eepromadres + 1) * 100))
}
5 berichten
• Pagina 1 van 1
Wie is er online?
Gebruikers in dit forum: Geen geregistreerde gebruikers en 42 gasten