Forum: Mikrocontroller und Digitale Elektronik Atmega48PA und myAVR_LCD_Modul


von A. B. (developer_x)


Lesenswert?

Hey Leute,
also ich hab mir by myavr mal das LCD_Modul besorgt, plus das Lehrheft.

Erstmal :
Kennt jemand von euch nen Link, wo man sich die Quelltexte runterladen 
kann??

Zweitens :
Ich habe den jetzt erstmal mühevoll abgetippt, und das Brett aufgebaut, 
Programm geflashed, aber auf dem Display sind nur schwarze Balken zu 
erkennen, allerdings keine Buchstaben.

Mein Code ist folgender (Assembler), Atmega48PA mit 8Mhz :
1
.include "M48PAdef.inc"
2
3
; //////////////////////////////////////////////////////////////
4
.DEF STACK_LOW = R16
5
.DEF STACK_HIG = R17
6
.DEF OUTPUT    = R22
7
8
.DEF TIMER_1   = R25
9
.DEF TIMER_2   = R26
10
11
; //////////////////////////////////////////////////////////////
12
; Stackpointerinitialisierung
13
  LDI STACK_LOW, LOW(RAMEND)    ;Stackpointer initialisieren
14
  OUT SPL, STACK_LOW
15
  LDI STACK_HIG, HIGH(RAMEND)   ;Stackpointer initialisieren
16
  OUT SPH, STACK_HIG
17
; //////////////////////////////////////////////////////////////
18
  rcall wait5ms
19
  rcall wait5ms
20
  rcall wait5ms
21
  rcall wait5ms
22
  rcall wait5ms
23
  rcall wait5ms
24
  rcall wait5ms
25
  rcall wait5ms
26
27
mainloop :
28
  rcall wait5ms
29
  ldi r16,'H'
30
  rcall LCD_data
31
  ldi r16,'e'
32
  rcall LCD_data
33
  ldi r16,'l'
34
  rcall LCD_data
35
  ldi r16,'l'
36
  rcall LCD_data
37
  ldi r16,'o'
38
  rcall LCD_data
39
  ldi r16,'!'
40
  rcall LCD_data
41
  rcall LCD_line2
42
43
  ldi r16,'W'
44
  rcall LCD_data
45
  ldi r16,'o'
46
  rcall LCD_data
47
  ldi r16,'r'
48
  rcall LCD_data
49
  ldi r16,'l'
50
  rcall LCD_data
51
  ldi r16,'d'
52
  rcall LCD_data
53
  ldi r16,'!'
54
  rcall LCD_data
55
  rcall LCD_home
56
  rjmp mainloop
57
58
LCD_init:
59
  sbi DDRD,2
60
  sbi DDRD,3
61
  sbi DDRD,4
62
  sbi DDRD,5
63
  sbi DDRD,6
64
  sbi DDRD,7
65
  cbi PORTD,2
66
67
LCD_data:
68
  ldi r18,0b00000100
69
  rjmp LCD_out
70
71
LCD_cmd:
72
  ldi r18,0b00000000
73
LCD_out:
74
  mov r17,r16
75
  swap r17
76
  andi r16,0b11110000
77
  or r16,r18
78
  andi r17,0b11110000
79
  or r17,r18
80
  out PORTD,r16
81
  rcall LCD_enable
82
  out PORTD,r17
83
  rcall LCD_enable
84
  rcall wait5ms
85
  ret
86
87
LCD_CUL:
88
  ldi r16,0b00010000
89
  rcall LCD_cmd
90
  rcall wait5ms
91
  ret
92
93
LCD_CUR:
94
  ldi r16,0b00010100
95
  rcall LCD_cmd
96
  rcall wait5ms
97
  ret
98
99
LCD_line1:
100
  ldi r16,0b10000000
101
  rcall LCD_cmd
102
  rcall wait5ms
103
  ret
104
105
LCD_line2:
106
  ldi r16,0b11000000
107
  rcall LCD_cmd
108
  rcall wait5ms
109
  ret
110
111
LCD_goto:
112
  ori r16,0b10000000
113
  rcall LCD_cmd
114
  rcall wait5ms
115
  ret
116
117
LCD_enable:
118
  sbi PORTD,3
119
  nop
120
  nop
121
  nop
122
  cbi PORTD,3
123
  ret
124
125
LCD_clear:
126
  ldi r16,0b00000001
127
  rcall LCD_cmd
128
  rcall wait5ms
129
  ret
130
131
LCD_home:
132
  ldi r16,0b00000010
133
  rcall LCD_cmd
134
  rcall wait5ms
135
  ret
136
137
LCD_off: 
138
  ldi r16,0b00001000
139
  rcall LCD_cmd
140
  rcall wait5ms
141
  ret
142
143
LCD_on:
144
  ldi r16,0b00001110
145
  rcall LCD_cmd
146
  rcall wait5ms
147
  ret
148
149
wait5ms:
150
  rcall Wait1MS
151
  rcall Wait1MS
152
  rcall Wait1MS
153
  rcall Wait1MS
154
  rcall Wait1MS
155
  ret
156
157
Wait1MS :
158
  LDI TIMER_1,255
159
  LDI TIMER_2,200
160
161
    WaitXX1ms :
162
    NOP
163
    INC TIMER_2
164
    CPSE TIMER_2,TIMER_1
165
    BRNE WaitXX1ms 
166
  RET

Ich habe den Code zu einigen Teilen auch nicht verstanden,
weil der teilweise schlecht erklärt ist, und wie gesagt, wird nichts 
angezeigt.

Hat jemand eine Idee, was da falsch laufen könnte?


Danke,
m.f.G. Developer_X

von g457 (Gast)


Lesenswert?

> Hat jemand eine Idee, was da falsch laufen könnte?

Es gibt eine verdächtig klingende Marke

> LCD_init:

die augenscheinlich nie angesprungen wird. Könnte das damit zu tun 
haben, muss aber nicht. Was ganz sicher was damit zu tun hat ist der 
offensichtliche Mangel an Dokumentation, die du (nicht) rausrückst, z.B. 
genaue Produktbezeichnung (nicht mal gugl kennt ein 'LCD_Modul' von 
myavr), Link zum Hersteller, vollständige Herstellerdoku, vollständiger 
Aufbau Deines Systems (Schaltpläne, ggf. aussagekräftige Fotos vom 
Aufbau) und noch alles andere relevante Material.

von Spess53 (Gast)


Lesenswert?

Hi

>Es gibt eine verdächtig klingende Marke

>> LCD_init:

Da wird eh nur ein Port initialisiert. Vom LCD keine Spur. Ein Link zum 
LCD wäre ganz hilfreich.

MfG spess

von A. B. (developer_x)


Lesenswert?

Sorry, hab ich vergessen leute, sorry, war im Zeitstress.

Also es handelt sich um folgendes Modul :
http://shop.myavr.de/index.php?sp=article.sp.php&artID=15
(dort findet ihr auch die ganzen Datenblätter)

ein Beispielcode, wahrscheinlich der aus folgendem Werk :
http://shop.myavr.de/Literatur/LCD%20Lehrheft.htm?sp=article.sp.php&artID=16

ist leider nur in einer Projektdatei eines kostenpflichtigen Programmes 
vorhanden, über welches ich nicht verfüge :
http://shop.myavr.de/index.php?sp=download.sp.php&suchwort=dl16

Der Aufbau ist richtig verbunden, denk ich mal, wenn ich den Strom 
starte ist zumindest einmal auch der charakteristische Balken auf dem 
LCD zu sehen, falls noch keine Texte gesendet wurden.

Das auf der Website zu findende Beispielprogramm im HEX-Format habe ich 
auch schoneinmal geflashed und ausprobiert, allerdings ohne wirkung^^.

Im folgenden eine Tabelle, die zeigt wie die Beinchen verbunden sind :
Pin am Modul  Pin am Atmega48PA
1    Port D.2
2    Port D.3
3    Port D.4
4    Port D.6
5    Port D.6
6    Port D.7
7    Port B.0
8    Port B.1
13    5V
14    Masse


Danke für eure Unterstützung,
m.f.G. Developer_X

von Spess53 (Gast)


Lesenswert?

HI

Hier findest du Beispiele zur Initialisierung:

http://www.mikrocontroller.net/articles/AVR-Tutorial:_LCD

MfG Spess

von A. B. (developer_x)


Lesenswert?

Danke! Jetzt funktionierts!

von A. B. (developer_x)


Angehängte Dateien:

Lesenswert?

HAAH!

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.