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
Ja so funktioniert es doch wenn ich jetzt zahlen aus variablen ausgeben will funktioniert es nicht (zählschleife u. anzeigen).
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?
Hallo, es ist ein Atmega 16 es steht alles in kleinen Buchstaben. wenn ich es mit lcd_string("***"); versuche funktioniert es Leitungen habe ich gerade durchgemessen es ist keine kaltelötstelle oder sonst etwas vorhanden. danke für die hilfe
Mit wie viel Mhz tickt dein µC? 16Mhz? Erhöhe mal LCD_WRITEDATA_US aufs doppelte und teste es erneut.
Gib doch den Buchstaben 'H' aus. Laut deinem Code übergibst du den String "H", dabei wird ein Zeiger auf den String übergeben.
Ich habe einen 16mhz quartz am µC hengen aber hab kp ob die fuses so passen?
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.
Laaaaaannngaaaamm schrieb: >> Ich habe einen 16mhz quartz > Das ist aber seeehhhhr laaaaangsaaaaammm... Für Anfanger: 16mhz vs. 16Mhz -----------------^---------^-------
Ardionoquäler schrieb: > Für Anfanger: 16mhz vs. 16Mhz > -----------------^---------^------- Das sind doch beides offensichtliche Schreibfehler, denn die Einheit Hertz kürzt sich Hz ab, mit großem H. Also bitte mHz oder MHz.
dann eben MHz. Sorry. mit lcd_data('h'); funktioniert es jetzt, Jetzt ist immernoch das Problem mit den Zahlen will ich Zahlen über lcd_Data ausgeben kommt wieder Ascii schit
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.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.