verstehe printf ausgabe nicht

insertcoin

Erfahrenes Mitglied
Hallo,

ich programmiere gerade einen Microcontroller mit dem man über eine UART Schnittstelle in ein Hyperterminal schreiben kann.
Ich hab ein paar Codezeilen aus einem anderen Programm übernommen, die funktionieren auch. Nur verstehe ich sie nicht ganz, und das sollte ich wohl um richtig weitermachen zu können.
Kann mir die jemand erklären...

printf("%c[21;%iH",0x1B,index+1);
printf("%c[%i;1H",0x1B,nummer);

schonmal danke..
 
printf("%c[21;%iH",0x1B,index+1); .... Zeichen mit Wert 0x1B (Escape) ... Semikolon ... Integer index +1.
 
Eine kleine Ergänzung: Das 'H' beim '%iH' heißt, das der Integer-Wert in Hex-Schreibweise mit großen Buchstaben dartgestellt wird.
 
Ahh, ok .. danke ..
noch eine Frage, ich hab mir jetzt mal genau angesehen was die Zeile macht ..
Er springt mit dem Cursor im Hyperterminal in Zeile 21, und an die Stelle die in index+1 steht. Kann mir dazu noch jemand sagen, warum er das genau so macht
Das mit dem [21 lässt ja schon auf die Zeile schließen, aber warum funtioniert das
 
Afaik ist das '[' kein spezielles Format-Zeichen des Standard-printf. Normalerweise sollte es nach dem character einfach ausgegeben werden.
Da hier ein MC programmiert wird, gehe ich davon aus, daß es bei dieser Implementation von printf um eine Sonderfunktion handelt. Besonders, da es nach einem Escape-Character folgt.
Du müsstest Dir also die Doku Deiner clib-Implementation (des Compilers) holen, da sollte das dann dokumentiert sein.
 
Ok, dann kann ich damit jetzt was anfangen, und versuch das mal nachzulesen ..
Vielen Dank fürs Weiterhelfen.
Greets
 
Zurück