Hallihallo...
Ich habe ein altes Nokia 5210 rumliegen gehabt, da dachte ich mir... das display passt gut in den PC zur Überwachung und Steuerung meiner WaKü.
Hab mir code aus Beispielen übernommen und es läuft auch irgendwie.
Nur scheinen die Kommandos nicht richtig zu funktionieren, wie z.b. RAM adresse auf NULL, oder invertieren des Displays.
ich benutze nen Mega16 an 5V, das Display LPH7366 (NOKIA 5210) mit integriertem Controller PCD8544 an 2,9V
Angesprochen wird das Display mit hard-SPI
Im Programm soll ersteinmal das LCD getestet werden und dann an erster Stelle ein Rechteck blinken.
Der Test klappt auch, aber das Rechteck wandert auf dem Bildschirm immer Zeichen für Zeichen weiter.
Hat jemand vielleicht eine Idee, woran das liegen könnte?
Hab noch nicht so die Erfahrung mit der Materie...
Danke schonmal, wäre gut, wenn jemand nen Gedanken dazu hätte...Code:$regfile = "m16def.dat" $crystal = 12000000 Config Portb = Output Declare Sub Ukommando(byval Wert As Byte) Declare Sub Udata(byval Wert As Byte) Declare Sub Initialisierung Declare Sub Lcdloeschen Declare Sub Lcdtest Declare Sub Invert Dim Xx As Byte Config Spi = Hard , Data Order = Msb , Master = Yes , Polarity = Low , Phase = 0 , Clockrate = 4 Dc Alias Portb.0 Ce Alias Portb.2 Re Alias Portb.1 Re = 0 'Reset Waitus 250 Re = 1 Spiinit Weiter: Initialisierung Lcdloeschen Lcdtest 'Initialisierung Do Lcdloeschen Waitms 500 Udata &B11111111 Udata &B10000001 Udata &B10000001 Udata &B10000001 Udata &B11111111 Udata &B00000000 Waitms 500 Loop Sub Invert Ukommando &H21 'Erweiterter Kommando-Mode Ukommando &HC8 Ukommando &H06 Ukommando &H13 Ukommando &H0D Ukommando &H20 'Wieder in den normalen Kommando-Mode Ukommando &H21 Ukommando &H0D Ukommando &H20 End Sub Sub Lcdtest Lcdloeschen For Xx = 1 To 84 Udata &B11111111 Udata &B11111111 Udata &B11111111 Udata &B11111111 Udata &B11111111 Udata &B11111111 Next Waitms 500 Ukommando &H24 Waitms 500 Ukommando &H20 Invert Waitms 500 Lcdloeschen End Sub Sub Initialisierung Ukommando &H21 'Erweiterter Kommando-Mode Ukommando &HC8 Ukommando &H06 Ukommando &H13 Ukommando &H20 'Wieder in den normalen Kommando-Mode Ukommando &H0C End Sub Sub Lcdloeschen Local I As Word Ukommando &H0C 'Normaler Bildschirm Ukommando &H80 Ukommando &H21 'Erweiterter Kommando-Mode 'Ukommando &H80 'Setze RAM-Adresse auf 0 Ukommando &H20 'Normaler Kommando-Mode Ukommando &H0C 'Normaler Bildschirm Ukommando &H80 'Setze RAM-Adresse auf 0 Dc = 1 'Sicherstellen, dass man im Daten-Mode ist For I = 0 To 503 Udata &H00 Next Ukommando &H0C 'Normaler Bildschirm Ukommando &H80 'RAM auf adresse 0 End Sub '------------------------------------------------------------------------------ Sub Ukommando(byval Wert As Byte) Dc = 0 'in den Kommando-Mode Spiout Wert , 1 Dc = 1 'zurück in den Daten-Mode End Sub Sub Udata(byval Wert As Byte) Dc = 1 'um sicher zu gehen, dass man auch wirklich im Datenmode ist Ce = 0 Spiout Wert , 1 Ce = 1 End Sub
Stefan







Zitieren

Lesezeichen