ich habe einen GPS Tacho für ein Mofa gebastelt mit GPS gestützter Distanzberechnung nun zu meinem Problem da sich der Wert natürlich ändert und dieser ja gespeichert bleiben soll wenn der µ-Controller stromlos ist lasse ich diesen auf eine SD-Karte schreiben und bei Neustart wieder auslesen. Da aber der Wert immer mehr stellen bekommt kann ich ihn mit der mir bekannten Methode nicht auslesen.
Gibt es eine Möglichkeit an den Wert führende Nullen anfügen:
Es geht also im Speziellen um den Gesamt- oder Tageskilometerzähler, der so dargestellt werden soll? Über die sprintf-Funktion kann man Werte entsprechend formatieren, Google-Stichworte wären dann "sprintf führende Nullen".
Hallo, wenn es nur um den Kilometerzähler geht, könntest du den eeprom nutzen. Eine eeprom Adresse kann 8-Bit speichern, 0-255. Es sind 512 Adressen da.
Dann musst du zum Start mit "EEPROM.read(address);" den ersten (adress = 0) auslesen, wenn der =255 dann den wert plus adress+1 wenn der =0 dann hast du den Kilometerstand.
Die mögliche Zahl sollte für eine Mofa ausreichen.
Da aber der Wert immer mehr stellen bekommt kann ich ihn mit der mir bekannten Methode nicht auslesen.
Ja genau es geht um den Gesamt Kilometerzähler.
Was das eine mit dem anderen zu tun hat, weißt wohl nur du.
Mir scheint, du buddelst auf einer falschen Baustelle, denn bei den üblichen Integer Typen, kommen keine Stellen hinzu. Wie auch, sie bilden eine begrenzte Menge ab. Die Grenze ist nicht verschiebbar.
Irgendwelche exotischen Extrawürste machen hier sicherlich keinen Sinn
Dann musst du zum Start mit "EEPROM.read(address);" den ersten (adress = 0) auslesen, wenn der =255 dann den wert plus adress+1 wenn der =0 dann hast du den Kilometerstand.
Man wählt einen hinreichend großen Integer Type (oder eine geeignete Struktur) und verwendet EEPROM.put() und get()
...lasse ich diesen auf eine SD-Karte schreiben und bei Neustart wieder auslesen. Da aber der Wert immer mehr stellen bekommt kann ich ihn mit der mir bekannten Methode nicht auslesen.
Wenn du trotz der vielen Tips, es ganz anders zu machen, bei
sdfile.println(kmstand);
bleiben willst, kannst du diese mit parseInt() wieder auslesen, egal wie viele Zeichen das sind. Liefert übrigens ein long zurück. Das sollte für einen Kilometerstand reichen.
michael_x:
Wenn du trotz der vielen Tips, es ganz anders zu machen, bei
sdfile.println(kmstand);
bleiben willst, kannst du diese mit parseInt() wieder auslesen, egal wie viele Zeichen das sind. Liefert übrigens ein long zurück. Das sollte für einen Kilometerstand reichen.