atxmega TWI string übergabe

#4045448
Lesenswert?

Hallo
Ich muss für TWI (ich benutzte den Atmel Treiber, der einzelne Bytes 
übergibt) meine Strings in Bytes teilen, damit ich sie mittels TWI 
übermitteln kann.
Hat hierbei einer Erfahrung wie man das macht?
Oder ist es einfach den TReiber umzuschreiben?
Vielen Dank!
#4045491
Lesenswert?

hier ein Beispiel:

#define VERSION "t"
wenn ich das ganze jetzt in int umwandle zum übergeben:
uint8_t = atoi(VERSION);
//hier die Übergabe von MCU an PC mit readbuffer
char output[10]
snprintf(output, "%d", readbuffer)


Hier bekomme ich immer einen Buffer overflow, keine Ahnung warum.
Was mach ich, wenn der #define String aus mehr als einem Byte besteht?
Gast #4045522
Lesenswert?

Arduinoquäler schrieb:
> Was für ein Overhead. Wenn der Compiler es nicht wegoptimiert
> dann wird strlen(...) bei jedem Schleifendurchlauf neu
> aufgerufen ..... da biegen sich mir die Zehennägel hoch.

zum glück optimieren ja die Compiler. Außerdem geht es hier um ein 
Beispiel nicht um optimalen code.
Das senden über TWI wird eh so langsam sein, es nicht mal einen 
unterschied machen würde.
#4045647
Lesenswert?

Mein Fehler, dass ich die Variable vergessen habe.
Meine Frage war auch eher, ob ich atoi verwenden kann, um den String 
"kurzzeitig" in einen int umzuwandeln, zu verschicken, und dann 
zurückzuwandeln. -->anscheinend nicht
Gibt es auch die Möglichkeit irgendwie anstatt uint8_t x = 
(uint8_t)text[0];
auch mehrere Charaktere in die Variable zu schreiben?

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren