2016-08-22 13 views
0

Ich versuche eine einfache Möglichkeit zu finden, negative Werte im EEPROM zu speichern, ganzzahlige Werte von -20 bis 20. Ich habe die Funktionen EEPROM.write und EEPROM.read benutzt, um Strings Zeichen für Zeichen zu speichern, aber ich bin es Probleme mit negativen Zahlen haben. Ich denke, ich brauche nur ein Byte für diesen Wert.Wie speichert man negative Zahlen im EEPROM (Arduino IDE)?

Antwort

2

Es ist nur eine Frage der Zahl Darstellung. Sie müssen nur richtig Datentypen verwenden, drucken oder zu verwenden:

Version 1: int8_t data = EEPROM.read(addr);

Version 2:

byte data = EEPROM.read(addr); 
Serial.print((int8_t)data); 

EEPROM.write kann direkt mit int8_t verwendet werden: EEPROM.write(int8_value);

Oder, wenn Sie int int, können put/get Methoden dafür verwendet werden (sogar für Strukturen, die nur POD-Typen enthalten)

+0

Danke! Ich frage mich, gibt es ein Framework/Methode, wo ich alle meine gespeicherten Daten auf eine überschaubarere Weise speichern kann, so kann ich nur den Wert auf EEPROM basierend auf dem Variablennamen speichern? – bbglazer

+0

Für AVRs gibt es Modifizierer [EEMEM] (https://tinkerlog.com/2007/06/16/using-progmem-and-emem-with-avrs/) (nur für internen Speicher). So können Sie automatisch eeprom-Adressen platzieren. Es sollte möglich sein, eeprom auch auf Standardwerte zu initialisieren, aber es funktionierte nicht für mich in der Arduino IDE, daher wird es möglicherweise nicht unterstützt. – KIIV

+0

Danke für die Info! – bbglazer