Hallo An all jene die gerne ein LCD mit einem KS0066U Controller ansteuern möchten jedoch das Tutorial nicht geht, Ich hab die Lösung :D Im anhang befindet sich eine LCD Routine für den KS0066U die Garantiert Funktioniert!!!! Viel spass bei fragen, bitte direktes Mail an claudio.hediger@gmail.com
Sorry Anhang vergessen :D
Gast
#786238
Kann mir jemand erklären wie die Variable "DelayCount1" deklariert werden soll? DANKE
Gast
#1139251
Hallo Leute, kann es sein, dass das überhaupt nicht funktionieren kann!? Da fehlen vorneweg mal die 30ms, die der KS060 sich nach dem Power up gönnt!? Hat den code jmd zum laufen gebracht? Viele Grüße Paul
Gast
#3128879
Hallo, könnte mir woll jemand den oben aufgeführten Assembler code in C umschreiben? das Wäre echt super.
Hallo zusammen, der Beitrag ist zwar schon älter aber aus dem Assembler-Tutorial hier im Board wird noch immer auf ihn verwiesen, daher aktualisiere ich mal die Informationen. Hintergrund: Ich arbeite mich gerade durch das Tutorial und scheiterte an der Inbetriebnahme eines Bona MC2004-01 4x20 Displays. Es handelt sich um dieses Display (ich habe beide): http://www.arduino-projekte.de/index.php?n=9 Mit dem Code aus dem Tutorial funktioniere das Ganze jedoch nicht und so stieß ich auf diesen Thread. Der Code von Adam Swann funktioniert tatsächlich. Es gelang mir damit auf Anhieb, die Displays zu betreiben! Der Themenersteller hat jedoch nicht den kompletten Code gepostet, das sei hiermit nachgeholt: Hauptprogramm:
1 | |
2 | |
3 | |
4 | |
5 | |
6 | |
7 | |
8 | |
9 | |
10 | |
11 | |
12 | |
13 | |
14 | |
15 | |
16 | |
17 | |
18 | |
19 | |
20 | |
21 | |
22 | |
23 | |
24 | |
25 | |
26 | |
27 | |
28 | |
29 | |
30 | |
31 | |
32 | |
33 | |
34 | |
35 | |
36 | |
37 | |
38 | |
39 | |
40 | |
41 | |
42 | |
43 | |
44 | |
45 | |
46 | |
47 | |
48 | |
49 | |
50 | |
51 | |
52 | |
53 | |
54 | |
55 | |
56 | |
57 | |
58 | |
59 | |
60 | |
61 | |
62 | |
63 | |
64 | |
65 | |
66 | |
67 | |
68 | |
69 | |
70 | |
71 | |
72 | |
73 | |
74 | |
75 | |
76 | |
77 | |
78 | |
79 | |
80 | |
81 | |
82 | |
83 | |
84 | |
85 | |
86 | |
87 | |
88 | |
LCD-Routinen:
1 | |
2 | |
3 | |
4 | |
5 | |
6 | |
7 | |
8 | |
9 | |
10 | |
11 | |
12 | |
13 | |
14 | |
15 | |
16 | |
17 | |
18 | |
19 | |
20 | |
21 | |
22 | |
23 | |
24 | |
25 | |
26 | |
27 | |
28 | |
29 | |
30 | |
31 | |
32 | |
33 | |
34 | |
35 | |
36 | |
37 | |
38 | |
39 | |
40 | |
41 | |
42 | |
43 | |
44 | |
45 | |
46 | |
47 | |
48 | |
49 | |
50 | |
51 | |
52 | |
53 | |
54 | |
55 | |
56 | |
57 | |
58 | |
59 | |
60 | |
61 | |
62 | |
63 | |
64 | |
65 | |
66 | |
67 | |
68 | |
69 | |
70 | |
71 | |
72 | |
73 | |
74 | |
75 | |
76 | |
77 | |
78 | |
79 | |
80 | |
81 | |
82 | |
83 | |
84 | |
85 | |
86 | |
87 | |
88 | |
89 | |
90 | |
91 | |
92 | |
93 | |
94 | |
95 | |
96 | |
97 | |
98 | |
99 | |
100 | |
101 | |
102 | |
103 | |
104 | |
105 | |
106 | |
107 | |
108 | |
109 | |
110 | |
111 | |
112 | |
113 | |
114 | |
115 | |
116 | |
117 | |
118 | |
119 | |
120 | |
121 | |
122 | |
123 | |
124 | |
125 | |
126 | |
127 | |
128 | |
129 | |
130 | |
131 | |
132 | |
133 | |
134 | |
135 | |
136 | |
137 | |
138 | |
139 | |
140 | |
141 | |
142 | |
143 | |
144 | |
145 | |
146 | |
147 | |
148 | |
149 | |
150 | |
151 | |
152 | |
153 | |
154 | |
155 | |
156 | |
157 | |
158 | |
159 | |
160 | |
161 | |
162 | |
163 | |
164 | |
165 | |
166 | |
167 | |
168 | |
169 | |
170 | |
171 | |
172 | |
173 | |
174 | |
175 | |
176 | |
177 | |
178 | |
179 | |
180 | |
181 | |
182 | |
183 | |
184 | |
185 | |
186 | |
187 | |
188 | |
189 | |
190 | |
191 | |
192 | |
193 | |
194 | |
195 | |
196 | |
197 | |
198 | |
199 | |
200 | |
201 | |
202 | |
203 | |
204 | |
205 | |
206 | |
207 | |
208 | |
209 | |
210 | |
211 | |
212 | |
213 | |
214 | |
215 | |
216 | |
217 | |
218 | |
219 | |
220 | |
221 | |
222 | |
223 | |
224 | |
225 | |
226 | |
227 | |
228 | |
229 | |
230 | |
231 | |
232 | |
233 | |
234 | |
235 | |
236 | |
237 | |
238 | |
Der Code funktioniert nicht nur für 8515, sondern ebenfalls problemlos mit dem AtMega8 bzw. AtMega48. Getestet bei 4Mhz und 8Mhz. Ich habe den Code aus einem Thread bei AVRFreaks: http://www.avrfreaks.net/forum/attiny2313-lcd-hd44780-source-code-asm-working Der Code ist dort allerdings nicht unumstritten. Für mich ist er dennoch eine große Erleichterung, da er auch mit meiner Hardware funktioniert (im Gegensatz zum Code aus dem Tutorial). So macht mir das weitere Lernen im Tutorial einfach mehr Spaß, da ich die Resultate auch auf dem Display ausgeben kann und so ein besseres Feedback habe :-) Grüße Ralf
Hier noch ein Foto:
Die Kritik bei AVRFreaks bezog sich übrigens auf eine nicht datenblattkonforme Initialisierungssequenz. Die Initialisierung muss insgesamt 3x durchlaufen werden. Dies ist im Tutorial-Code ebenso der Fall. Ich habe das nun analog zum Tutorial eingebaut und der Code läuft damit besser. Zuvor zerhackte ein Reset die Displayausgabe, es musste immer spannungsfrei gemacht werden und funktionierte erst beim erneuten Einschalten wieder. Mit der dreifachen Init-Sequenz klappt nun auch der Reset...
1 | |
2 | |
3 | |
4 | |
5 | |
6 | |
7 | |
8 | |
9 | |
10 | |
11 | |
12 | |
13 | |
14 | |
15 | |
Gast
#4996017
Hi
>Mit der dreifachen Init-Sequenz klappt nun auch der Reset...
Da fehlt aber in deinem Programm etwas.
MfG Spess
spess53 schrieb: > Da fehlt aber in deinem Programm etwas. Wie gesagt: Ich bin noch Anfänger, arbeite gerade das Tutorial durch. Mit solch nebulösen Andeutungen kann ich nichts anfangen. Helfen würde hingegen wenn du konkret benennen könntest was ich anders oder besser machen könnte. Die Veränderung, die ich an Adam Swanns Code vorgenommen habe, habe ich analog zur Kritik auf AVR-Freaks und analog zum Code des Tutorials vorgenommen. In meinen Anwendungsfall mit Erfolg bzw. mit einer spürbaren Verbesserung... Ich lerne gerne weiter dazu :) Danke vorab und Gruß Ralf
Gast
#4996063
HI >Wie gesagt: Ich bin noch Anfänger, arbeite gerade das Tutorial durch. >Mit solch nebulösen Andeutungen kann ich nichts anfangen. Dann vergleiche doch mal dein Original (02.05.2017 11:29)
1 | |
2 | |
3 | |
4 | |
5 | |
6 | |
mit deinem Auszug (02.05.2017 12:52)
1 | |
2 | |
3 | |
4 | |
5 | |
6 | |
Was ich in deinem Programm allerdings vermisse ist die Verzögerung nach dem Einschalten des Displays. Datenblatt vom KS0066: Wait for more than 30 ms after Vdd rises to 4.5 v MfG Spess
spess53 schrieb: > > Dann vergleiche doch mal dein Original (02.05.2017 11:29) > > mit deinem Auszug (02.05.2017 12:52) Du meinst die doppelten Delays?? Klappt bei mir sowohl als auch... Ich schaue mir das aber noch einmal genauer an. Ich möchte die Delays gerne unabhängig von der Taktfrequenz der MCU machen. > > Was ich in deinem Programm allerdings vermisse ist die Verzögerung nach > dem Einschalten des Displays. Wie gesagt: Es ist nicht "mein" Programm. Der Code stammt von Adam Swann... > > Datenblatt vom KS0066: > > Wait for more than 30 ms > after Vdd rises to 4.5 v > Stimmt! Ich versuche mal, das einzubauen. Gute Übung... :-) Danke für die konkreten Hinweise! Gruß Ralf
Gast
#4996167
Hi
>Du meinst die doppelten Delays?? Klappt bei mir sowohl als auch...
Unter welchen Umständen getestet? Also auch z.B. Start aus dem
stromlosen Zustand.
MfG Spess
So, ich habe nun analog zum Tutorial-Code die Delays an die Taktfrequenz gekoppelt und außerdem ein 30ms Delay zu Beginn eingebaut... Es gibt wieder eine spürbare Verbesserung in der Funktion. Bislang führte ein Reset zu einer deutlich wahrnehmbaren Veränderung des Displays (Störungen etc.) bevor sich der Inhalt wieder aufbaute. Nun gibt es keine Störungen mehr. Ein Reset bewirkt einen sauberen Neuaufbau des Displayinhaltes! Des Weiteren habe ich die Ansteuerung der 4 Displayzeilen etwas vereinfacht. Hier der Code...
Antwort schreiben
Bitte melde dich an, um einen Beitrag zu schreiben.

