Arduino: Byte am Serial Monitor immer komplett ausgeben

OP #3183552
Lesenswert?
• ▲
▼
n'Abend,

Leider ist google heute nicht mein Freund, also muß das Forum herhalten.
Ich suche nach einer Möglichkeit einen Wert binär am Serial-Monitor oder 
auf einem LCD als komplettes Byte anzuzeigen auch wenn der wert kleiner 
0x80 ist.
In meinem Code werden Nullen vor dem höchsten High Bit nicht angezeigt.
1
int wert = 0x65;
2
Serial.print(wert, BIN);

was kann ich anders machen?

Cheers
Philipp
OP #3184267
Lesenswert?
• ▲
▼
PittyJ schrieb:
> Wenn man das von Hand macht (Schleife 7 -> 0) und die Bits als '1' oder
> '0' ausgibt, braucht das auch nur 5 Zeilen.
> Ist das so schwer zu implementieren? Braucht man dafür schon Google?


Peter Dannegger schrieb:
> void printbin8( uint8_t val )
> {
>   for( uint8_t i = 8; i; i--, val <<= 1 )
>     putchar( !!(val & 0x80) + '0' );
> }

vielen Dank für die Antworten, auf das bin ich auch schon gekommen. 
Dachte vielleicht gibt es einen Befehl der mir das so ausgibt. Die 
schleife verstehe ich soweit, aber was wenn ich einen dezimalen Wert von 
3 Stellen(Bsp: 903) 4- stellig anzeigen will(Bsp: 0903). wie kommt dann 
die "Null" vor den Wert?
#3184604
Lesenswert?
• ▲
▼
Hallo Philipp,

wenn du in der Arduino-IDE auf Hilfe->Referenz klickst, öffnet sich eine 
lokale Version von http://arduino.cc/en/Reference/HomePage. Schon 
gelesen? Da steht nämlich was interessantes: "It links against AVR Libc 
and allows the use of any of its functions; see its user manual for 
details."

Wenn du da die Referenz öffnest 
(http://www.nongnu.org/avr-libc/user-manual/modules.html), findest du 
unter "<stdio.h>: Standard IO facilities" die interessante Funktion 
"sprintf", die du in deinem Fall zum Beispiel so benutzen kannst:

int val = 903;
char buf[7];
sprintf(buf,"%04d",val);
Serial.print(buf);

Die Funktion sprintf und ihre Kollegen sind recht mächtig was 
Formatierung von Ausgabe angeht. Die komplette Anleitung ist daher recht 
lang, siehe 
http://www.nongnu.org/avr-libc/user-manual/group__avr__stdio.html unter 
vfprintf.

LG, Sebastian

Antwort schreiben

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.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.