Ich hab hier ein LCd Display mal an den Mega32 angeschlossen. Mit folgendem Code lässt es sich initialisieren aber zeigt nichts an: [code] $regfile "m32def.dat" $crystal = 8000000 Config Portc = Output Config Portd.6 = Output Config Portd.7 = Output Lcd_data Alias Portd Lcd_rs Alias Portd.7 Lcd_en Alias Portd.6 Lcd_en = 0 : Waitms 50 Lcd_rs = 0 Lcd_data = 56 : Lcd_en = 1 : Lcd_en = 0 : Waitms 2 Lcd_data = 12 : Lcd_en = 1 : Lcd_en = 0 : Waitms 2 Lcd_data = 1 : Lcd_en = 1 : Lcd_en = 0 : Waitms 2 Lcd_data = 2 : Lcd_en = 1 : Lcd_en = 0 : Waitms 2 Lcd_rs = 1 Lcd_data = 65 : Lcd_en = 1 : Lcd_en = 0 : Waitus 40 Stop [code] Weiß jemand wie das in dem Bascom Displaybefehlssatz mit lcd und so aussehen würde. ICh habs schon mehrmals probiert und nicht hingekriegt. Ich habs in 8bit angeschlossen 4bit geht aber auch (aufjedenfall die init). Mit dem 4bit Code auf http://www.dieelektronikerseite.de/ Komischerweise schreibt der nie was. Das Display bleibt nur leer. Noch was zum LCD: Es halt 5 solche schwarzen Kappen. Keine Ahnung für was so viele Chips.
sorry, ich hab gedacht die Display Daten stehen noch im Code: Es ist ein 4*20 Zeichen Display.
Sam schrieb: > Mit folgendem Code lässt es sich initialisieren aber zeigt nichts an: Wie stellst du die erfolgreiche Initialisation fest? Sam schrieb: > Noch was zum LCD: Es halt 5 solche schwarzen Kappen. Keine Ahnung für > was so viele Chips. Das hilft viel -.- Bild vom Display her. Vorder- und Rückseite.
Floh schrieb: > Wie stellst du die erfolgreiche Initialisation fest? Ganz einfach: Es zeigt nicht mehr die Balken in der 1. und 3. Zeile an. Sondern nichts. Der Bildschirm leutet einfach leer. Chipsatz ist KS0065(X4).
Hi In deiner Initialisierung fehlt er Befehl 'Entry Mode Set'. MfG Spess
Sam schrieb: > Config Portc = Output > Config Portd.6 = Output > Config Portd.7 = Output Vermutung (1): Portc = Datenleitungen Portd = Steuerleitungen > Lcd_data Alias Portd (* ??? *) > Lcd_rs Alias Portd.7 > Lcd_en Alias Portd.6 Vermutung (2): Lcd_data sollte als "Alias Portc" definiert werden
spess53 schrieb: > In deiner Initialisierung fehlt er Befehl 'Entry Mode Set'. Kannst du mir vielleicht sagen wie das geht? bix schrieb: > Vermutung (2): > Lcd_data sollte als "Alias Portc" definiert werden Danke; hatte ich nicht beachtet (kommt davon wenn man Code nicht selber schreibt), aber ändert leider nichts.
Hi >>spess53 schrieb: >> In deiner Initialisierung fehlt er Befehl 'Entry Mode Set'. >Kannst du mir vielleicht sagen wie das geht? Anhang S.18 und S.26. >Danke; hatte ich nicht beachtet (kommt davon wenn man Code nicht selber >schreibt), aber ändert leider nichts. Als James Dean kann man zwar Filmkarriere machen, aber zum Programmieren taugt die Einstellung nicht. MfG Spess
spess53 schrieb: > Anhang S.18 und S.26. Hab ich gemacht, danke. Allerdings.. funktioniert es trotzdem nicht. Wie voher, display ist inited und zeigt weder Cursor noch Zeichen an. Mein neuer Code (ich hab jetzt nicht alles umgerechnet in eine Zahl, sondern manches in Bits gelassen):
1 | $regfile "m32def.dat" |
2 | $crystal = 8000000 |
3 | |
4 | Config Portc = Output |
5 | Config Portd.6 = Output |
6 | Config Portd.7 = Output |
7 | |
8 | Lcd_data Alias Portc |
9 | Lcd_rs Alias Portd.7 |
10 | Lcd_en Alias Portd.6 |
11 | |
12 | Waitms 50 |
13 | |
14 | Lcd_en = 0 |
15 | |
16 | 'Function Set |
17 | Lcd_rs = 0 |
18 | Lcd_data.7 = 0 |
19 | Lcd_data.6 = 0 |
20 | Lcd_data.5 = 1 |
21 | Lcd_data.4 = 1 |
22 | Lcd_data.3 = 1 |
23 | Lcd_data.2 = 1 |
24 | Gosub Writetolcd |
25 | Waitus 40 |
26 | |
27 | 'Display ON/OFF Control |
28 | Lcd_rs = 0 |
29 | Lcd_data.7 = 0 |
30 | Lcd_data.6 = 0 |
31 | Lcd_data.5 = 0 |
32 | Lcd_data.4 = 0 |
33 | Lcd_data.3 = 1 |
34 | Lcd_data.2 = 1 |
35 | Lcd_data.1 = 1 |
36 | Lcd_data.0 = 1 |
37 | Gosub Writetolcd |
38 | Waitus 40 |
39 | |
40 | 'Display Clear |
41 | Lcd_rs = 0 |
42 | Lcd_data = 1 |
43 | Gosub Writetolcd |
44 | Waitms 2 |
45 | |
46 | 'Entry Mode Set |
47 | Lcd_rs = 0 |
48 | Lcd_data = 7 |
49 | Gosub Writetolcd |
50 | Waitms 50 |
51 | |
52 | 'Write Char |
53 | Lcd_rs = 1 |
54 | Lcd_data = 60 |
55 | Gosub Writetolcd |
56 | |
57 | 'Main Loop |
58 | |
59 | Do |
60 | |
61 | Loop |
62 | |
63 | 'Functions |
64 | Writetolcd: |
65 | Lcd_en = 1 |
66 | Lcd_en = 0 |
67 | Return |
Ich weiß, dass es unnötig ist jedesmal Lcd_rs auf 0 zu setzen, aber solche Optimierungen kann ich auch später durchführen.
Hi! versuchs mal hiermit :) http://www.yaoyu-lcm.com/english/admin/Software/20086171462569145.pdf cya The_ride
Ich hab JTAG nicht aktiviert, aber wenn das standardmäßig an ist, ist es immernoch an. PS: Ich kann grad nicht nachkucken, bin in der Schule.
Ist standardmäßig an..... muss entweder im initialisierungsprozess (Resetroutine Kaltstart) deaktivirert werden. Achtung Das Register muss 2mal unmittelbar aufeinanderfolgend beschrieben werden sonst wird das datum nicht geändert! oder man deaktiviertes mittels Jtagfusebit !!! Achtung umgekehrte Logik ALLER Fusebits beachten sonst gefahr den Aussperrens!!!
Danke es klappt. Ich hab noch nie was mit JTAG gemacht, aber es war doch so, dass der Controller die Ports nicht freigegeben hat (oder so ähnlich), und deswegen hat es nicht funktioniert? Funktioniert jetzt auch in Bascom.
Winfried J. schrieb: > Achtung umgekehrte Logik > ALLER Fusebits beachten sonst gefahr den Aussperrens!!! Darauf hab ich nicht geachtet, muss man in Avr burn o mat meines Wissens nicht. Eine Frage noch: Warum flakert das Lcd bei dem Code:
1 | $regfile "m32def.dat" |
2 | $crystal = 8000000 |
3 | |
4 | Config Lcd = 20 * 4 |
5 | Config Lcdpin = Pin , Db4 = Portc.4 , Db5 = Portc.5 , Db6 = Portc.6 , Db7 = Portc.7 , E = Portd.6 , Rs = Portd.7 |
6 | Config Lcdbus = 4 |
7 | |
8 | Cls |
9 | Locate 1 , 1 |
10 | Lcd "Hallo Welt" |
Bascom muss irgendetwas noch über die Datenleitungen senden, denn wenn man den 10pol Datenstecker zieht hört es auf; beim einstecken flackert es weiter. Liegt das daran, dass das Programm kein Ende hat?
Sam schrieb: > Warum flakert das Lcd bei dem Code: Vielleicht deshalb, weil sich dein Programm in keiner obligaten Endlosschleife letztendlich fängt und daher von den BASCOM Basisfunktionen immer wieder neu gestartet wird und im Zuge dessen das LCD ständig löscht und neu beschreibt, was man, wenn es moderat schnell geschieht, als Flackern wahrnimmt?
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.