mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Dezimale Zahl wird binär ausgegeben


Autor: nanotech (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Moinsen!

Ich versuche, eine Integerzahl auf einem Display auszugeben. In einer 
Programmschleife wird von 0 bis 255 gezählt und ein Port mit digitalen 
Ausgängen wird gesetzt. Auf dem Display möchte ich den aktuellen 
Zählerstand als dezimale Zahl haben.

Dazu benutze ich die Funktion itoa():

iz ist ein int und ch ein char.
    
    for(iz=0;iz<255;iz++)
    {
      PORTB = iz;
      itoa(iz,ch,2);
      lcd_ausgabe(ch);
      _delay_ms(2500);
    }


Auf dem Display wird jetzt aber nicht 0, 1, 2, 3, 4 angezeigt, sondern 
das ganze als Bin-Code. Woran liegt das und wie kann ich das ändern?

Autor: H.J.Seifert (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
tja, was verbirgt sich hinter lcd_ausgabe??
und wie bekommt man 2 ASCII-Zeichen in ein char??

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
nanotech schrieb:

> iz ist ein int und ch ein char.

Das wird wohl nicht reichen, wenn eine 3-stellige Zahl ausgegeben werden 
soll. Die würde ja mindestens 3 char benutzen, für jede Stelle einen.
Also, spätestens da solltest du jetzt schon stutzig werden.

http://www.mikrocontroller.net/articles/FAQ#Wie_ka...
http://www.mikrocontroller.net/articles/FAQ#Wie_fu...

Autor: Klaus Wachtler (mfgkw)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
und nicht zu vergessen die Doku zu itoa: 
http://www.nongnu.org/avr-libc/user-manual/group__...

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
nanotech schrieb:
> Auf dem Display wird jetzt aber nicht 0, 1, 2, 3, 4 angezeigt, sondern
> das ganze als Bin-Code. Woran liegt das und wie kann ich das ändern?

Es liegt daran, daß Du es so hingeschrieben hast.
Das 3. Argument von itoa(), "2" hat eine bestimmte Bedeutung.

Es könnte recht hülfend sein, wenn man mal nachguckt, was die Argumente 
einer Funktion bedeuten, ehe man sie verwendet.


Peter

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.