Zahlen>9 auf LC-Display anzeigen

Gast #1449014
Hallo zusammen,

ich habe ein Problem mit der Darstellung von Zahlen größer als 9 auf dem 
LC-Display. Wenn hochgezählt wird, zeigt er nicht 10,11 usw. an, sondern 
:,; usw. wie die ASCII-Tabelle vorgibt. Daher habe ich versucht die 
Ziffern nacheinander darzustellen...aber statt der Zahl zeigt das 
Display ausschließlich zwei Cursor an, die blinken.

Hier das lächerlich kleine Programm:

int i=0x20; /*als Beispiel i=32*/
int zehner, einer;


  lcd_init();

  zehner=(i/10);
  einer=(i%10);


  lcd_string("Ausfaelle:");
  lcd_data(zehner);
  lcd_data(einer);

Die Unterprogramme wie lcd_init(), lcd_data(), usw. habe ich aus dem 
Tutorial.

Vielleicht habe ich zu einfach gedacht?

Ich freue mich über jede Antwort!!!
Gast #1449029
Simon R. schrieb:

> Hier das lächerlich kleine Programm:

Das ist kein Programm, sondern eine Handvoll Zeilen, aus denen sich 
nicht mal die verwendete Sprache zu 100% bestimmen laesst, geschweige 
denn die verwendete Hardware, Bibliotheken, etc.

Spontan wuerde ich mal darauf tippen, dass du mit mit lcd_data( 9) auch 
keine 9 auf dem Display siehst, weil du sie die Zahl nicht in ASCII 
umwandelst.
Gast #1449035
Das mit itoa() habe jetzt an einem einfachen Beispiel getestet...und es 
funktioniert.
Vorher hatte ich es gleich kompliziert erweitert, um es an mein 
vollständiges Programm anzupassen. Und das ging voll in die Hose.
Man muss sich eben langsam vortasten...

Vielen Dank für eure schnellen Antworten.

Simon
Gast #1449043
@ Peter Stegemann:

Das ist nur ein Abschnitt...die Bibliotheken sind selbstverständlich mit 
inbegriffen...ich verwende einen ATMega8 und das AVR Studio mit der 
Programmiersprache C sowie das LC-Display von Electronic Essembly (EA 
DIP 204-4).

Die Zahl 9 konnte ich mit meinem bisherigen Programm anzeigen...nur die 
zweistelligen Zahlen nicht. Deshalb hatte ich es vorher mit der anderen 
Methode versucht.
Gast #1449059
>Die Zahl 9 konnte ich mit meinem bisherigen Programm anzeigen...nur die
>zweistelligen Zahlen nicht. Deshalb hatte ich es vorher mit der anderen
>Methode versucht.
Wie sieht der Code aus mit dem du die 9 anzeigen kannst?
Gast #1449064
unter der Annhame,das "lcd_data" ein zeichen an die aktuelle 
cursorpos-schreibt und dann automatsch den cursor bewegt versuch mal so 
was:
1
  lcd_data('0'+zehner);
2
  lcd_data('0'+einer);
Gast #1449117
@micha: du hast recht...so funktioniert es ebenfalls. Super, vielen 
Dank. Ich persönlich finde das übersichtlicher, anstatt ständig 
irgendwelche Unterfunktionen zu haben. :-)
Was man selber geschrieben hat, versteht man eben besser! ;-)
Moderator (Firma: Titel) Persönliche Seite #1449155
>>  zehner=(i/10);
>>  einer=(i%10);
>>  lcd_string("Ausfaelle:");
>>  lcd_data(zehner);
>>  lcd_data(einer);
> Ich persönlich finde das übersichtlicher, anstatt ständig
> irgendwelche Unterfunktionen zu haben. :-)
Denk nochmal darüber nach... :-/
1) Mach das mal mit einer 7 stelligen Zahl...
   char millionen, hunderttausender, zehntausender,
        tausender, hunderter, zehner, einer;
2) Warum schreibst du dann nicht z.B. lcd_string() und lcd_data()
   auch als Inline-Code?
#1449225
Simon R. schrieb:
> @micha: du hast recht...so funktioniert es ebenfalls. Super, vielen
> Dank. Ich persönlich finde das übersichtlicher, anstatt ständig
> irgendwelche Unterfunktionen zu haben. :-)
> Was man selber geschrieben hat, versteht man eben besser! ;-)

Das kann man sicher so sehen.
Und jetzt erweitere deine Funktionalität noch um negative Zahlen, mach 
das ganze für jede beliebige Zahlenbasis und verbanne das alles dann in 
eine leicht zu benutzende Funktion und du hast ... itoa 
nachimplementiert.

Zu Lernzwecken, um zu verstehen wie itoa eigentlich funktioniert ist das 
ok. Aber in realen Programmen erfindet man das Rad nicht ständig neu :-)

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 17 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

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.