Atmega48PA und myAVR_LCD_Modul

OP #3099191
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
Gast #3099200
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.
OP #3099278
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

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren