Erst mal Hallo hab mal eine Verständnisfrage Warum, geht die zweite Displayzeile nicht Orginal _LCD_init_4bit ; 4-bit-mode bcf PORTB, LCD_RS ; control in movlw b'00100000' ; Set->8 bit call _write_high_nibble call _delay_40u movlw b'00101000' ; Set->4 bit call _write_4bit ; 2 Z. 5x8 Dot movlw b'00001100' ; On/Off call _write_4bit ; Control movlw b'00000110' ; Entry Mode Set call _write_4bit ; bsf PORTB,LCD_RS ; data_in return So geht es _LCD_init_4bit ; 4-bit-mode bcf PORTB, LCD_RS ; control in movlw b'00100000' ; Set->8 bit call _write_high_nibble call _delay_40u movlw b'00101000' ; Set->4 bit call _write_4bit ; 2 Z. 5x8 Dot ;------------------------------------------------ movlw b'00101000' ; Set->4 bit call _write_4bit ; 2 Z. 5x8 Dot ;------------------------------------------------ movlw b'00001100' ; On/Off call _write_4bit ; Control movlw b'00000110' ; Entry Mode Set call _write_4bit ; bsf PORTB,LCD_RS ; data_in return aber warum? kann mir da mal einer auf die Sprünge helfen?
HI Wäre mal interessant, um welchen Displaycontroller es sich handelt. Falls es ein HD44780-Kompatibler sehen beide Inits komisch aus. Im Anhang mal der übliche Ablauf einer 4-Bit-Init. MfG Spess
Danke für die Hilfe es ist ein HD44780-Kompatibler, Source ist aus dem Buch Elektrotechnik Geräte- und Systemtechnik PIC16-Microcontroller von westermann hab mal getestet ein 0 bit über den Hi_Nibble gesendet geht auch ich merke aber schon lieber alles selber schreiben da weis man was man hat ^^ _LCD_init_4bit ; 4-bit-mode bcf PORTB, LCD_RS ; control in movlw b'00100000' ; Set->8 bit call _write_high_nibble ;--------------------------------------------- movlw b'00000000' ; Set->8 bit call _write_high_nibble ;--------------------------------------------- call _delay_40u movlw b'00101000' ; Set->4 bit call _write_4bit ; 2 Z. 5x8 Dot movlw b'00001100' ; On/Off call _write_4bit ; Control movlw b'00000110' ; Entry Mode Set call _write_4bit ; bsf PORTB,LCD_RS ; data_in return
paul schrieb: > call _delay_40u Das ist doch viel zu kurz. Sieh dir nochmal das PNG von spess an. Meine Eselbrücke für das setzen des 4-bit Mode ist 'Ich sags dreimal, dann ist es wahr' :-)
Hallo Paul, beiliegend meine LCD-Initialisierungdatei. Vergleiche diese mal mit der Deinen! P.S. Ich habe mir diese mit Hilfe der PIC-Seiten von www.sprut.de erarbeitet und die Initialisierung/LCD-Ausgabe flutscht seit Jahren einwandfrei. mfG Ottmar
Ottmar K. schrieb: > flutscht seit Jahren Der HD44780 wird von n+1 Firmen gebaut. Oder sollte man sagen, etwas, was diesen Namen trägt und vorgibt kompatibel zu sein? Es gibt immer wieder Displays, die mit einer Sparinitialisierung zufrieden sind. Aber man muss sich nur einmal die Zahl der Threads hier im Forum ansehen, bei denen über Probleme berichtet wird. Lange Rede, wenig Sinn: Die von Spess53 gezeigte Routine sieht umständlich aus. Aber es ist imho die einzige, die wirklich funktioniert. Also nicht alles selbst erfinden wollen, sondern in diesem Fall einfach sklavisch abkupfern. Noch ein letzter Hinweis: Es sind auch Displays im Handel, die im Timing extrem anspruchsvoll sind. Wenn das Datenblatt sagt "Flankensteilheit des E-Signals maximal 50ns", dann ist das ernst gemeint. Dann sind 20cm Flachbandleitung u.U. schon tödlich. Schüttgut von der Resterampe ("Datenblatt gibt es nicht, das Display ist kompatibel zum Industriestandard") kann zu einer Abendfüllenden Beschäftigung führen.
Georg G. schrieb: > Lange Rede, wenig Sinn: Die von Spess53 gezeigte Routine sieht > umständlich aus. Aber es ist imho die einzige, die wirklich > funktioniert. Spess zeigt eine Kopie aus dem Datenblatt von Hitachi "HD44780U (LCD-II) (Dot Matrix Liquid Crystal Display Controller/Driver)" S. 223. Genau daran orientiert sich die von mir übermittelte Datei ..... Nochmals: HD44780-kompatible Displays unterschiedlichster Herkunft machten mir bisher keine Probleme... mfG Ottmar
Ottmar K. schrieb: > Georg G. schrieb: >> Lange Rede, wenig Sinn: Die von Spess53 gezeigte Routine sieht >> umständlich aus. Aber es ist imho die einzige, die wirklich >> funktioniert. > > Spess zeigt eine Kopie aus dem Datenblatt von Hitachi "HD44780U (LCD-II) > (Dot Matrix Liquid Crystal Display Controller/Driver)" S. 223. Im Bild ist ein Programmablaufplan zu sehen. 1. wenn dort steht, daß Du nach dem Einschalten der Spannung erst mal 40 MILLI-Sekunden warten sollst, dann sind 40 MICRO-Sekunden viel zu kurz. 2. wo es einen Fehler gibt, gibt es meist noch mehr Fehler.
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.