Problem Mit LCD display

OP #4067807
Lesenswert?
• ▲
▼
Hallo, ich habe mir jetzt ein LCD 4x20 zugelegt.
jetzt habe ich die LCD routinen vin µc.net genommen an meinen controller 
angepasst. jetzt zeigt das display Zwar etwas an aber nocht das was es 
soll.

es Steht auf dem Dosplay `bddf anstat Hallo.

Pinbelegung ist folgende:

RS PORTC2
EN PORTC3
DB4 PORTC4
DB5 PORTC5
DB6 PORTC6
DB7 PORTC7


Danke für eure Hilfe
Angehängte Dateien:
#4067897
Lesenswert?
• ▲
▼
Benjamin Liebold schrieb:
> Ja so funktioniert es doch wenn ich jetzt zahlen aus variablen ausgeben
> will funktioniert es nicht (zählschleife u. anzeigen).

Was jetzt?

Wenn du die Buchstaben 'H' 'A' 'L' 'L' und 'O' ausgibst und am LCD steht 
'bddf dann funktioniert das nicht. Ehe das nicht klappt, brauchst du mit 
anderen Dingen gar nicht weiter machen.
Da dürften 2 Datenleitungen einen Wackelkontakt oder überhaupt keinen 
Kontakt haben.
PS: Ehe ich weiter die Bitmuster der Ausgaben vergleiche, steht am LCD 
'bddf in Kleinbuchstaben oder in Grossbuchstaben?
#4068008
Lesenswert?
• ▲
▼
Fritz Ganter schrieb:
> Gib doch den Buchstaben 'H' aus. Laut deinem Code übergibst du den
> String "H", dabei wird ein Zeiger auf den String übergeben.

Ooops da hat er recht. Das hab ich im Code auch übersehen.
Das einzige was mich wundert, das ist, wie er das durch den Compiler 
gebracht hat.

Es muss lauten
1
  lcd_data( 'H' );
2
  lcd_data( 'A' );
3
  lcd_data( 'L' );
4
  lcd_data( 'L' );
5
  lcd_data( 'O' );

Beachte die Anführungszeichen!
' und " sind nicht dasselbe.
Für Details siehe jedes noch so grindige C-Lehrbuch für Anfänger.
#4068146
Lesenswert?
• ▲
▼
Benjamin Liebold schrieb:
> Jetzt ist immernoch das Problem mit den Zahlen will ich Zahlen über
> lcd_Data ausgeben kommt wieder Ascii schit

Die Lösung hat dir Karl-Heinz ja schon gepostet, aber um noch einmal 
klarzumachen, was dein Problem ist:

Die Zahl 0 und das Zeichen '0' (entspricht der Zahl 48) sind nur für den 
Menschen miteinander verknüpft, für den Controller nicht. Man muss dem 
Controller also sagen, dass - wenn eine Zahl zwischen 0 und 9 
hereinkommt, er ein Zeichen zwischen 48 und 57 ausgeben muss. Für 
einstellige Zahlen ist das noch recht trivial, denn man muss dann 
lediglich vor der Ausgabe 48 addieren, bei mehrstelligen Zahlen wird es 
entweder kniffliger oder man greift auf die fertigen Funktionen zurück.

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.