www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Hex-Ausgabe mit putchar???


Autor: Helge (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ist es irgendwie möglich mit putchar ein hexwert auszugeben?Hatte es 
vorher mit:
k=12
printf("%02X",k)
es wurde 0C ausgegeben
Nun habe ich den tollen mega128.Wie kann ich der USART1 solch einen Wert 
entlocken?
Gruß Helge

Autor: Helge (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo
Hab mir was gebastelt.Vielleicht gehts ja noch einfacher.

k=12; //dec wert zur hex ausgabe
a=k>>4;
b=k<<4;b=b/16;
if(a>9)a=a+7;
if(b>9)b=b+7;
a=a+48;b=b+48;
putchar(a);putchar(b);

Autor: Reiner (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
gebe es doch in ein char array aus.

char buf[3];   // immer ein mehr aus Du brauchst, da 0x00 angehängt wird

sprintf("%02X",k)
putchar(buf[0]);
putchar(buf[1]);


ist aber sicherlich mehr code als Deiner.

Reiner

Autor: Reiner (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ach mist

sprintf(buf,"%02X",k)
putchar(buf[0]);
putchar(buf[1]);

Autor: Helge (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Reiner
Ich benutze den Mega 128 mit 2 Schnittstellen.Wenn ich die zweite 
Schnittstelle benötige will mein Codevision nur putchar1. Habs mal mit 
sprintf1 probiert,klappt leider auch nicht.Mit der USART0 gehts.Aber wie 
es immer so ist benötige ich die USART1.
Aber vielen Dank für die Bemühungen.Vielleicht stelle ich mich auch zu 
blöd an.
Gruß Helge

Autor: Reiner (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
aber das sprintf ist total unabhängig von der io. Es ist völlig egal ob 
Du anschliessend auf die UART0, UART1, LCD, MMC oder sonst noch was 
ausgibts.

sprintf schreibt nur in das ram, nicht zur io


sprintf(buf,"%02X",k)
putchar1(buf[0]);
putchar1(buf[1]);



Reiner

Autor: Sascha Weitkunat (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wieso für sowas printf bemühen?

itoa(k, buf, 16);

sollte es auch tun, nun heisst es Codegröße vergleichen.

Autor: Reiner (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
spielt das ne Rolle beim 128er?

Irgendwo wird er die sprintf() brauchen und dann ist es eh egal

Reiner

Autor: Helge (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich probiere eure Tip´s heute Abend mal aus.Vielen Dank!Muß leider erst 
mal mein Atmel alleine lassen
Gruß Helge

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.