Forum: Mikrocontroller und Digitale Elektronik BASCOM LCD 20*4


von Ch S. (spelli)


Lesenswert?

Hallo,

habe folgendes Problem:

http://www.youtube.com/watch?v=jb1hbH2tqcI&feature=plcp

Bei dem Atmega128 handelt es sich um das Modul von Avr-Praxis.

Db7 ist an PE.4 (OCB3)
Db6 ist an PE.6 (T3 INT6)
Db5 ist an PB.0 (SS\)
Db4 ist an PB.2 (MOSI)
E   ist an PB.4 (OC0)
RS  ist an PB.6 (OC1B)
GND LCD ist an PG.3 (TOSC2)

in Klammern die Alternativbelegung...


Danek für Eure Hilfe!
Christoph
1
'--------------------------------------------------------------------------
2
' Compilerinstruktionen und Compilerdirektiven
3
'--------------------------------------------------------------------------
4
5
$regfile = "m128def.dat"
6
$crystal = 16000000
7
$hwstack = 64
8
$swstack = 64
9
$framesize = 64
10
$baud = 9600
11
12
'--------------------------------------------------------------------------
13
' Definition von Ressourcen
14
'--------------------------------------------------------------------------
15
16
Pwr_all Alias Portg.0                                       ' Relais 12 Volt für alles
17
Pwr_tft Alias Portg.1
18
Pwr_video Alias Portb.7
19
Pwr_xbee Alias Porte.2
20
Pwr_gps Alias Portc.6
21
22
Pwr_lcd Alias Portg.3                                       ' LCD GND
23
24
Tft1 Alias Portb.5
25
Tft2 Alias Portb.3
26
Tft3 Alias Portb.1
27
Tft4 Alias Porte.7
28
Tft5 Alias Porte.5
29
30
Led_gruen Alias Portd.6                                     ' link-LED
31
32
Ledduo_rot Alias Portd.5                                    ' Duo-LED für Battery-Status rot und grüen
33
Ledduo_gruen Alias Portd.7
34
35
Lcd_led Alias Porte.3                                       ' LCD-Beleuchtung
36
37
Bit0 Alias Portd.1
38
Bit1 Alias Portd.4
39
Bit2 Alias Portd.0
40
41
Piezo Alias Portg.4                                         ' Piezo
42
43
Joy_taster_rechts Alias Pinf.0                              ' Taster Joystick rechts
44
Joy_taster_links Alias Pinf.2                               ' Taster Joystick links
45
46
47
48
'--------------------------------------------------------------------------
49
' Definition von Konstanten
50
'--------------------------------------------------------------------------
51
52
Const Adc_multi = 0.0048828125                              ' = 5.0 / 1024.0 -> ADC auflösen
53
Const Timerstartwert1 = 36735
54
55
56
'--------------------------------------------------------------------------
57
' Definition von Variablen und Datentypen
58
'--------------------------------------------------------------------------
59
60
'---- Command senden ----
61
Dim Cmd As Byte
62
63
'---- Betriebsspannung messen ----
64
Dim Spannung As Word
65
Dim Battery_orig As Single
66
Dim Battery As String * 5
67
68
'---- Commands einlesen ----
69
Dim Dollarzeicheneingang As Byte                            'Beginn des Datenstrings mit Dollarzeichen
70
Dim Teildaten(14) As String * 20                            ' Array mit den extrahierten Daten
71
Dim Anzahl As Byte
72
Dim Datenstring As String * 40
73
Dim Datenkopf As String * 7
74
75
'---- LCD Darstellung ----
76
Dim Lcd_command As String * 20
77
Dim Lcd_voltage As String * 20
78
Dim Lcd_temperatur As String * 20
79
Dim Lcd_gps As String * 20
80
81
'---- Link-Flag ----
82
Dim Connect As Bit
83
84
'---- GPS RS232 TTl einlesen ----
85
Dim Gelesen As Byte                                         'eingelesenes Zeichen
86
87
Dim Teilstring(14) As String * 12
88
Dim Anzahl2 As Byte
89
Dim Gpsdaten As String * 98
90
Dim Header As String * 6
91
Dim Stunde As Byte
92
Dim Tempstring As String * 2
93
94
'---- Sekundenzähler/Timer ---
95
Dim Sec1 As Word                                            ' Variable für Timer1
96
Dim Sec0 As Word
97
98
'---- ADC Joysticks ----
99
Dim Joy_links_y As Word                                     ' Y-Achse LINKS
100
Dim Joy_links_x As Word                                     ' X-Achse LINKS
101
102
Dim Joy_rechts_y As Word                                    ' Y-Achse RECHTS
103
Dim Joy_rechts_x As Word                                    ' X-Achse RECHTS
104
105
106
'---- LCd Menü ----
107
108
109
'--------------------------------------------------------------------------
110
' Konfiguration und Basiseinstellungen
111
'--------------------------------------------------------------------------
112
113
'---- RS232 Software GPS ----
114
' RS232 Hardware
115
Config Serialin = Buffered , Size = 110                     ' konfig serial in
116
Open "COMC.0:9600,8,N,1" For Input As #1                    ' PC.2 = RxD SoftUART / GPS
117
Open "COMC.2:9600,8,N,1" For Output As #2                   ' PC.3 = TxD SoftUART / GPS
118
119
'---- ADC ----
120
Config Adc = Single , Prescaler = Auto , Reference = Avcc   'ADC Wandler definieren
121
122
'---- Timer ----
123
Config Timer1 = Timer , Prescale = 256                      ' für zähler Timer1 konfigurieren
124
125
Config Timer3 = Pwm , Pwm = 8 , Compare A Pwm = Clear Up , Compare B Pwm = Clear Up , Prescale = 1       ' für led und kontrast timer3
126
127
128
'---- Outputs ----
129
Config Pwr_all = Output
130
Config Pwr_video = Output
131
Config Pwr_tft = Output
132
Config Pwr_xbee = Output
133
Config Pwr_gps = Output
134
Config Pwr_lcd = Output
135
Config Led_gruen = Output
136
Config Ledduo_rot = Output
137
Config Ledduo_gruen = Output
138
Config Lcd_led = Output
139
Config Bit0 = Output
140
Config Bit1 = Output
141
Config Bit2 = Output
142
Config Tft1 = Output
143
Config Tft2 = Output
144
Config Tft3 = Output
145
Config Tft4 = Output
146
Config Tft5 = Output
147
148
'---- Joysticks ----
149
Config Joy_taster_links = Input
150
Config Joy_taster_rechts = Input
151
152
153
154
155
156
157
158
159
Pwr_lcd = 0                                                 ' LCD einschalten
160
161
Wait 2
162
163
'---- LCD ----
164
Config Lcd = 20 * 4
165
Config Lcdpin = Pin , Db4 = Portb.2 , Db5 = Portb.0 , Db6 = Porte.6 , Db7 = Porte.4 , E = Portb.4 , Rs = Portb.6
166
Cursor Off
167
168
Deflcdchar 0 , 32 , 32 , 21 , 14 , 4 , 4 , 4 , 4            ' Link-Zeichen
169
Deflcdchar 1 , 32 , 14 , 31 , 31 , 31 , 31 , 31 , 31        ' battery-full
170
Deflcdchar 2 , 32 , 14 , 31 , 17 , 17 , 31 , 31 , 31        ' battery-half
171
Deflcdchar 3 , 32 , 14 , 31 , 17 , 17 , 17 , 17 , 31        ' battery empty
172
173
'---- Interrupts ----
174
Enable Interrupts
175
Enable Timer1
176
Enable Timer3
177
178
On Timer1 Timer1_isr
179
180
Start Adc
181
182
183
'--------------------------------------------------------------------------
184
' Init
185
'--------------------------------------------------------------------------
186
187
Pwr_all = 1                                                 ' Relais für POWER ON einschalten
188
189
Waitms 250
190
191
Bit0 = 1                                                    ' Kanal für 5,8 Ghz alles zunächst high
192
Bit1 = 1
193
Bit2 = 1
194
195
Pwr_xbee = 1                                                ' XBee einschalten ON
196
Pwr_gps = 1                                                 ' GPS Modul einschalten ON
197
198
Led_gruen = 1                                               ' Led-grün OFF
199
Ledduo_rot = 0                                              ' Duo-LEDs OFF
200
Ledduo_gruen = 0
201
202
203
204
                                            '
205
Lcd_led = 0                                                 ' LCD-Beleuchtung ON
206
207
Connect = 0                                                 ' connect-flag = 0
208
209
Sec1 = 0                                                    ' sec1-Zähler = 0
210
Battery_orig = 12                                           ' zunächst von voller Batterie 12 Volt ausgehen
211
212
Tft1 = 1
213
Tft2 = 1
214
Tft3 = 1
215
Tft4 = 1
216
Tft5 = 1
217
218
219
220
Pwr_tft = 1                                                 ' TFT einschalten ON
221
222
223
Pwr_video = 0                                               '1                                               ' 5,8 Ghz einschalten ON
224
225
226
227
Sound Piezo , 220 , 227
228
Waitms 125
229
Sound Piezo , 220 , 227
230
Waitms 125
231
Sound Piezo , 220 , 227
232
Waitms 125
233
234
Wait 1
235
236
' Begrüßung
237
Cls
238
Cursor Off
239
240
Locate 1 , 1
241
Lcd "KaprigControlRxZ1"
242
Locate 2 , 1
243
Lcd "KaprigControlRxZ2"
244
Locate 3 , 1
245
Lcd "KaprigControlRxZ3"
246
Locate 4 , 1
247
Lcd "KaprigControlRxZ4"
248
249
250
251
'--------------------------------------------------------------------------
252
' Hauptprogramm
253
'--------------------------------------------------------------------------
254
255
Cls
256
257
Do
258
Loop
259
End

von der Gast (Gast)


Lesenswert?

Hallo,

da würde ich erstmal 99% vom Code auskommentieren und nur die LCD 
Routine testen.

Wenn die dann funktioniert, dann Stück für Stück den Rest wieder rein 
und Du wirst das Problem finden.

von no time for wait (Gast)


Lesenswert?

Vielleicht solltest du die Pause einfügen nachdem das LCD den Text 
anzeigt ;-)

von holger (Gast)


Lesenswert?

Als erstes würde ich mal die M103C Fuse abschalten.
Wenn das nicht hilft den Fehler in der Verdrahtung zum
LCD suchen.

Cls  ' Das hier hätte das Display eigentlich löschen müssen.
     ' Im Video sieht man aber den Müll immer noch;)

Do
Loop
End

von Chr. M. (snowfly)


Lesenswert?

Vielleicht spukt dir auch die nicht existente Isr rein

Ich würd mal das auskomentieren:
On Timer1 Timer1_isr

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
Noch kein Account? Hier anmelden.