Ich würde gern eine Telefonnummer im EEPROM ablegen. Diese Nummer soll über ein Konfig-Menü veränderbar sein. Im EEPROM kann ich ja nur byte ablegen. Habe ich nur die Möglichkeit die Rufnummer in die einzelnen Ziffern zu zerlegen?
itoa()
http://www.mikrocontroller.net/topic/52346
Grüße Uwe
Telefonnummern sehen nur so ähnlich aus wie Zahlen, sind aber Texte, die zur besseren Lesbarkeit
Leerzeichen, und nach Geschmack + - / ( ) , evtl. gar * und # enthalten.
Ausserdem ist bei Zahlen die Anzahl der führenden Nullen nicht so wichtig wie bei Telefonnummern.
Und wenn man sie schon speichert, sollte man das auch in dem Format machen wie man es sehen möchte.
( Und erst beim Wählen / SMS senden den Schnickschnack rausfiltern. )
Beim Arduino ist es einfach, denn jedes Zeichen eines Telefonnummern-Texts passt in ein byte. Du kannst also den char* direkt als byte array verwenden. strlen() gibt dir die erforderliche Anzahl bytes, falls du nicht der Einfachheit halber den reservierten EEPROM Speicherbereich genauso gross machst wie den RAM-Speicher für deine Telefonnummer.
Wenn du raus hast, wie du mehr als ein byte im EEPROM ablegst, kannst du mit dem gleichen Verfahren auch die einzelnen Zeichen der Telefonnummer addressieren.
Oder verwendest du ein String Objekt für deine Telefonnummer ? ( Weg damit )
ickehausen:
Ich würde gern eine Telefonnummer im EEPROM ablegen. Diese Nummer soll über ein Konfig-Menü veränderbar sein. Im EEPROM kann ich ja nur byte ablegen. Habe ich nur die Möglichkeit die Rufnummer in die einzelnen Ziffern zu zerlegen?
Da Telefonnummern führende Nullen enthalten können oder nicht, bietet es sich bei Telefonnummer an, diese nicht als Zahlen zu speichern, sondern die Bytes der einzelnen ASCII-Zeichen der zu wählenden Ziffern.