Warum ?
Tja,ich würde mal haarscharf kombinieren das eine Softemulation nicht so leistungsfähig sein kann wie Hardware.
Da fällt einiges unterm Tisch.
Beim Softwareuart das gleiche.
Kein Puffer :wink:
Druckbare Version
Warum ?
Tja,ich würde mal haarscharf kombinieren das eine Softemulation nicht so leistungsfähig sein kann wie Hardware.
Da fällt einiges unterm Tisch.
Beim Softwareuart das gleiche.
Kein Puffer :wink:
Was für einen Kondensator hast du an Vlcd?
der einzige kondensator den ich dran hab ist nen 1µf-elko zwischen gnd und Vout am display. ich habs allerdings auch mit nem 1µf-folienkondensator versucht. ich werd mal ne schnittstelle für hardware-spi löten und es dann nochmal testen.
ok, hab das ganze an den SCK und MOSI meines atmegas angeschlossen, den code entsprechend wieder geändert und siehe da: gleiches ergebnis... auch mit beiden kondensatoren getestet
Probier mal ein 10µF Elko. Irgendwo habe ich gelesen man kann 1µF bis 10µF benutzen.
Ich hatte das Display mal am PC. Da flackerte es auch. Jetzt am Mega16 und Hard-SPI ist es normal.
Z.Zt. läuft es mit 8MHz und Prescaler 4, sollte aber rechnerisch mit dem Vorteiler auch bei 16MHz laufen.
Der Code von dir kommt mir auch bekannt vor. Selbst damit ging es bei mir. Sonst hätte es ja evtl noch eine Einstellung sein können.
Kurz gesagt, außer anderen Elko fällt mir nichts ein :(
also ich hab jetzt nen 1er, nen 10er und nen 2,2er getestet. mit dem gleichen ergebnis. programmer abgesteckt hab ich auch versucht...
Es sieht so aus, als ob die die 3,3V mit Spannungsteiler erzeugst?!
Der LPT liefert ja auch keine 3,3V sondern mehr. Ich weiss nicht, wie es mit LCDHype lief. Vielleicht war der Ausgang getaktet und erzeugte nicht an allen Pins die gleiche Spannung und flackerte deshalb bei mir?
Ich habe es am Mega16 zuerst mit Spannungsteiler mit Festwiderständen probiert. Aber die Spannung war auch immer unterschiedlich. Damit lief das Display absolut nicht. Nur beim flashen wenn das LCD auch am ISP mit dran war, konnte man ab und zu ein paar Zeichen oder Bilder erkennen, die mich vermuten lassen haben, das das Display zwar meistens was empfangen hat, aber nur nicht angezeigt hat.
Dann habe ich den Mega16 (nicht L) mit 3,3V betrieben und das Display direkt an den Ports angeschlossen. Dann ging's.
Aber mit viel weniger Spannung läuft der AVR nicht.
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
Hallo zusammen,
das Thema ist zwar schon etwas älter aber vielleicht haben ja noch andere ein Problem bei der Inbetriebnahme?
Ich habe mein Display an einen Mega 8 angeschlossen und das Programm on http://www.mkprojekt.de/index.php/content/view/2/2/ aufgespielt.
Das Display zuckt kurz wenn ich Spannung anlege oder wegnehme. Ich bin mir bei den Widerständen etwas unsicher da zu diesen keine Werte ngegeben waren.Code:$regfile = "m8def.dat"
$crystal = 4000000
Config Portc = Output
Declare Sub Ukommando(byval Wert As Byte)
Declare Sub Udata(byval Wert As Byte)
Declare Sub Initialisierung
Declare Sub Lcdloeschen
Config Spi = Hard , Data Order = Msb , Master = Yes , Polarity = Low , Phase = 0 , Clockrate = 4
Dc Alias Portc.0
Ce Alias Portc.5
Re Alias Portc.2
Re = 0 'Reset
Waitus 250
Re = 1
Spiinit 'Initialisierung der SPI-Schnittstelle
Do
Portc.4 = 1
Initialisierung
Lcdloeschen
Udata &H7F
Udata &H02
Udata &H04
Udata &H02
Udata &H7F
Udata &H00
Portc.4 = 0
Wait 2
Loop
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 &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
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
Hat jemand ne Idee wie es richtig sein muss?
Tobias
probiers mal mit 1k Wiederständen