hallo zusammen
Ich habe bei Pollin das TG12864B-03 erworben.
http://www.pollin.de/shop/dt/NTc1OTc4OTk-/Bauelemente_Bauteile/Aktive_Bauelemente/Displays/LCD_Modul_TG12864B_03.html
Ich habe folgendes Programm geschrieben und auf den Atmega8 übertragen.
Nun leider sieht es immer so aus wie im Anhang. Weiss einer ein Rat?
1 'Anschluesse des Grafik-Displays
2 '
3 'LCD Pin anschliessen an
4 '1 VSS GND
5 '2 VDD +5V
6 '3 V0 Kontrast Mitte 10k Poti zw. Vout (Pin18 LCD) und GND
7 '4 RS PortB.0
8 '5 R/W PortB.1
9 '6 E PortB.4
10 '7-14 DB0-DB7 PortD
11 '15 CS1 PortB.2
12 '16 CS2 PortB.3
13 '17 RSTB Reset PortB.5
14 '18 Vout Poti Seite
15 '19 BLA ueber 150 Ohm an +5V
16 '20 BLK GND'
17
18
19 $regfile = "m8def.dat"
20 '$crystal = 100000
21 $crystal = 800000
22 $hwstack = 32
23 $swstack = 10
24 $framesize = 40
25
26 $lib "glcdKS108.lib"
27
28 'Grafik-Display mit Anschlluessen beschreiben:
29 Config Graphlcd = 128 * 64sed , Dataport = Portd , Controlport = Portb , Ce = 2 , Ce2 = 3 , Cd = 0 , Rd = 1 , Reset = 5 , Enable = 4
30
31 Dim X As Byte , Y As Byte , I As Byte
32
33 Cls 'Display Loeschen
34 'wait 1
35
36 'Grosse Zeichen
37 Setfont Font16x16
38 '4 Zeilen a 8 Zeichen moeglich
39 'LCDAT zeile, spalte, value Text/variable/Konstante schreiben
40 'Bei 16x16 ist Zeile = 1 bis 7 spalte in Pixel
41 Lcdat 3 , 24 , "Hallo"
42 Lcdat 6 , 40 , "AVR"
43 Wait 3
44 Cls
45
46 'kleine Zeichen
47 Setfont Font8x8
48 '8 Zeilen a 16 Zeichen moeglich
49 'LCDAT zeile, spalte, valiue Text/variable/Konstante schreiben
50 'bei Font8x8 ist zeile = 1 bis 8 spalte in Pixel
51 Lcdat 1 , 1 , "Erste Zeile"
52
53 'Inverse mit Lcdat zeile, spalte, value, Farbe
54 Lcdat 2 , 1 , "invers" , 1 'Invers Textdarstellung
55
56 Lcdat 4 , 80 , "rechts"
57
58 For I = 1 To 10
59 Lcdat 5 , 8 , I , 0
60 Wait 1
61 Next I
62 Wait 1
63
64 'Linie mit Line (x1,y1)-(x2,y2), Farbe
65 Line(0 , 63) -(127 , 0) , 1 'Line
66 Wait 2
67 Line(0 , 63) -(127 , 0) , 0 'Linie loeschen
68 Wait 1
69
70 'Kreiszeichnen mit Circle(x,y),radius,Farbe
71 Circle(20 , 50) , 5 , 1 'Kreis
72
73 'Punktsetzten mit Pset x, y, Farbe
74 Pset 5 , 50 , 1 'Punkt setzen
75 Wait 2
76 Pset 5 , 50 , 0 'Punkt loeschen
77
78 'Für Smiley:
79 Pset 18 , 49 , 1 'Punkt setzten
80 Pset 22 , 49 , 1
81 Line(19 , 53) -(21 , 53) , 1
82 Pset 18 , 52 , 1
83 Pset 22 , 52 , 1
84
85 Wait 1
86
87 'Ausgefüllter Kreis
88 For Y = 0 To 15
89 Circle(60 , 40) , Y , 1
90 Waitms 100
91 Next
92 Wait 3
93
94 'Ausgefüllter Kreis löschen
95 For Y = 0 To 15
96 Circle(60 , 40) , Y , 0
97 Waitms 100
98 Next
99 Wait 2
100
101
102
103 'Mit GLCDCMD können Kommandos an das Display gesendet werden
104 Glcdcmd &H3E , 1 : Glcdcmd &H3E , 2 'Beide Display aus
105 Wait 1
106 Glcdcmd &H3F , 1 : Glcdcmd &H3F , 2 'Beiden an
107
108 'Kreuz zeichnen
109 Line(115 , 63) -(125 , 53) , 1 'Linie
110 Line(115 , 53) -(125 , 63) , 1 'Linie
111
112 Wait 5
113
114
115
116 'Grafik anzeigen:
117 Showpic 0 , 0 , Bild1 'Grafik anzeigen
118 End
119
120
121
122 'Zeichensatzdatei(en)
123 $include "font8x8.font"
124 $include "font16x16.font"
125
126 'Bilderdatei einfühgen
127 Bild1:
128 $bgf "Bild1.bgf"
von
perlbastel (Gast)
03.06.2012 20:31
danke für die Antwort habe die Ltgs nochmals nachgeprüft aber keinen
Fehler gefunden.
Gruss
von
spess53 (Gast)
03.06.2012 20:38
Hi
>Nun leider sieht es immer so aus wie im Anhang. Weiss einer ein Rat?
Und an welcher Stelle von deinem Programm?
MfG Spess
schon ab dem moment wo ich die Speissung anlega.
Gruss
von
spess53 (Gast)
03.06.2012 21:07
Hi
>schon ab dem moment wo ich die Speissung anlega.
Ich frage mich immer, warum man so etwas erst merkt, wenn man schon ein
(mehr oder weniger) großes Programm geschrieben hat.
Also teste mal, was das Display nach der Initialisierung und nach einem
CLS anzeigt.
MfG Spess
Das heisst du würdest das Display so testen?
Gruss
1 'Anschluesse des Grafik-Displays
2 '
3 'LCD Pin anschliessen an
4 '1 VSS GND
5 '2 VDD +5V
6 '3 V0 Kontrast Mitte 10k Poti zw. Vout (Pin18 LCD) und GND
7 '4 RS PortB.0
8 '5 R/W PortB.1
9 '6 E PortB.4
10 '7-14 DB0-DB7 PortD
11 '15 CS1 PortB.2
12 '16 CS2 PortB.3
13 '17 RSTB Reset PortB.5
14 '18 Vout Poti Seite
15 '19 BLA ueber 150 Ohm an +5V
16 '20 BLK GND'
17
18
19 $regfile = "m8def.dat"
20 '$crystal = 100000
21 $crystal = 800000
22 $hwstack = 32
23 $swstack = 10
24 $framesize = 40
25
26 $lib "glcdKS108.lib"
27
28 'Grafik-Display mit Anschlluessen beschreiben:
29 Config Graphlcd = 128 * 64sed , Dataport = Portd , Controlport = Portb , Ce = 2 , Ce2 = 3 , Cd = 0 , Rd = 1 , Reset = 5 , Enable = 4
30
31 Dim X As Byte , Y As Byte , I As Byte
32
33 Cls
34
35 End
'Display Loeschen
von
spess53 (Gast)
03.06.2012 21:31
Hi
>Das heisst du würdest das Display so testen?
Das wäre der erste Schritt. Wenn das schon nicht funktioniert hast du
ein Problem.
MfG Spess
Ich habe den code nun so umgestellt aber leider habe ich immer noch das
selbe Bild
hab testweise einen anderen ATmega verwendet und einen Typgleichen LCD
aber auch diese Kombination bringt den selben Fehler
1 $regfile = "m8def.dat"
2 '$crystal = 100000
3 $crystal = 800000
4 $hwstack = 32
5 $swstack = 10
6 $framesize = 40
7
8 'Einbinden von Grafik-Display-Routinen:
9 $lib "glcdKS108.lib"
10
11 'Grafik-Display mit Anschlluessen beschreiben:
12 Config Graphlcd = 128 * 64sed , Dataport = Portd , Controlport = Portb , Ce = 2 , Ce2 = 3 , Cd = 0 , Rd = 1 , Reset = 5 , Enable = 4
13
14 Dim X As Byte , Y As Byte , I As Byte
15
16 Initlcd
17
18 'Grosse Zeichen
19 Setfont Font8x8
20 '4 Zeilen a 8 Zeichen moeglich
21 'LCDAT zeile, spalte, value Text/variable/Konstante schreiben
22 'Bei 16x16 ist Zeile = 1 bis 7 spalte in Pixel
23 Lcdat 3 , 24 , "Hallo"
24 Lcdat 6 , 40 , "AVR"
25 Wait 3
26 Cls
27
28
29 End
30
31 $include "font8x8.font"
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.