Daniel R. schrieb:
> string byte1="77"
> string byte2="57"
> string byte3="05"
>
> Den string dann das per UART auf den Controller senden mit der passenden
> Adresse.
Das wird aber so nichts. Denn wenn du mit Strings arbeitest, benötigst
du zum speichern von 2 Charactern auch 2 Bytes. D.h. deine 055777
benötigen dann im EEPROM 6 Bytes an Speicherplatz.
> Es ist zwischen 1 und 159999 alles möglich.
Erstens passt dann 159999 sowieso nicht in einen (2 Byte) int, d.h. du
kannst eine derartige Zahl ohnehin nicht mehr als int rekonstruieren.
Und zweitens erhebt sich die Frage, warum du da ausgerechnet eine Zahl
in ihrer Form als Textrepräsentierung speichern willst, wo es doch
naheliegend wäre die Zahl gleich in ihrer endgültigen binären Form als
einen (4 Byte) long Wert zu speichern (oder 2 Byte int). Das würde dann
in weiterer Folge auch die Umwandlung auf dem Arduino bei der Verwendung
obsolet machen, da dann der EEPROM Inhalt direkt und ohne weiteres Zutun
als Zahl benutzt werden kann.
Ganz abgesehen davon, dass du die Information, wie genau auf dem Arduino
Dinge gespeichert werden, überhaupt nicht wissen willst. Für den PC ist
das einfach der 3. Konfigurationseintrag, vielleicht hat der auch einen
Namen den man sich leichter merken kann. Aber wie und wo der Arduino
sich das speichert, das will man am PC doch gar nicht wissen. Wenn das
ein Zahlenwert ist, dann soll der Arduino sich das so speichern können,
wie es für ihn zweckmässig ist. Der PC übergibt per Schnittstelle
bzw. fragt den Wert mittels
ab und gut ists. Der Arduino antwortet dann zb mit
(anstelle von DUTY kann das natürlich auch der 3.
Zahlen-Konfigurationsparameter sein, wenn man sich nicht mittels Namen
binden möchte und die Schlüsselwörter müssen auch nicht 'GET', 'SET',
'VALUE' lauten. Das sind jetzt nur Ideen. Semantisch trägt
genau die gleiche Information, ist aber leichter per Programm zu
handhaben, weil umfangreichere String Parsing Aktionen entfallen)
> Den string dann das per UART auf den Controller senden mit der passenden
Adresse.
Das kannst du ja nach wie vor. Dazu musst du auf dem PC keinen String
deswegen zerlegen. Übergib den String an den Arduino, zusammen mit der
Adresse, an der dieser zu speichern ist, im Arduino wird die Zahl in
ihre Binärform überführt (so wie man das an Schnittstellen eben macht,
die textbasiert sind) und als solche dann im EEPROM abgelegt. Dazu
brauchst du nichts am PC zu zerlegen. Du bist hier gerade drauf und
drann, Funktionalität an der falschen Stelle (=im PC) zu implementieren.