Hallo liebe Community,
Plattform: Atmega 32, eigenes Modul in Ethersex
ich probiere etwas verzweifelt in C eine Ausgabe hinzubekommen:
Ich habe eine 16bit Variabele, die ich in hexadezimaler Schreibweise in
ein Char-Array schreiben möchte, folgenden Code habe ich:
1 | //output ist groß genug
|
2 | uint16_t var=60000;
|
3 | char buffer[3];
|
4 | itoa((var& 0xff00)>>8,buffer,16); //Die niedrigen 8 Bit auf 0 setzten und dann die höheren 8 auf die niedirgen 8 schieben
|
5 | output[0]=buffer[0];
|
6 | output[1]=buffer[1];
|
7 | itoa((var &0xff),buffer,16);//Die höheren 8 Bit ausblenden
|
8 | output[2]=buffer[0];
|
9 | output[3]=buffer[1];
|
10 | output[4]='\0';
|
in diesem Fall arbeitet alles sauber und ich habe eine Ausgabe von
"ea60", was vollkommen korrekt ist.
Wenn ich nun die erste Zeile durch:
1 | uint16_t var=fenster_ist;
|
ersetzte(auf fenster_ist wird in keiner anderen Funktion zugegriffen),
so kriege ich als Ausgabe "0ff".
Im Dateikopf steht:
1 | uint16_t fenster_ist=60254; //hex:eb5e
|
Ich bin so langsam mit meiner Weisheit am Ende, würde mich über jede
Hilfe freuen!