Problem Mit LCD display

OP #4067807
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
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
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
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

Eine eigene Frage? Dieser Thread ist über 11 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.