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

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren