Displaytech 162 LCD mit bascom ansteuern

Gast #1478435
Lesenswert?

Moin Moin, ich hab mir letztens bei Reicehlt das Display bestellt:
http://www.reichelt.de/?ACTION=3;ARTICLE=31652;PROVID=2402

Mein Code sieht grad so aus:
1
$regfile = "2313def.dat"
2
'$crystal = 16000000
3

4
Ddrd = &B11111111                                           'LCD-Output
5

6

7
Config Lcdpin = Pin , Db4 = Portd.0 , Db5 = Portd.1 , Db6 = Portd.2 , Db7 = Portd.3 , E = Portd.5 , Rs = Portd.4
8
Config Lcd = 16 * 2
9

10
ldi r24, $24                                                'hier die Anpassungen
11
rcall _lcd_control                                          'für das Reichelt-LCD
12
ldi r24, $9
13
rcall _lcd_control
14
ldi r24,$20
15
rcall _lcd_control
16

17
Initlcd
18
Cls
19
Cursor Off Noblink
20

21
Locate 1 , 1
22
Lcd "Zeile1..."
23

24
Locate 2 , 1
25
Lcd "Zeile2..."
26

27
End

Display is auch garantier richtig angeschlossen, zehnmal übrprprüft, es 
zeigt in der ersten Zeile auch schöne schwarze Rechtecke deren Kontrast 
ich übern Poti regeln kann.

Das lässt für mich darauf was schliesen was ich nach stundenlangen 
googeln so über LCD rausgefunden hab das nur die erste Zeile 
initialisiert wird, oder?

Ich weis das es Bascom lieber wäre wenn ich en Display mit nem HD44780 
Controller hätt, aber soeins gibts bei Reichelt nur für 18 Euro, und das 
is mir dann doch etwas zuviel^^

Vorhin bin ich dann hierrauf gestosen und hab das auch gleich Probiert ( 
Beitrag "Bascom: Reichelt-LCD" ), und das was oben steht 
is nu bei rausgekommen, mit LCDs hab ich halt noch nie gearbeitet.

Weis jemand was ich falsch mache?

Danke schonmal für eure Antworten :)

MFG
David
#1478444
Lesenswert?

David Sutter schrieb:

Gleich vorweg:
Ich habe keine Lösung für dein Problem

> Das lässt für mich darauf was schliesen was ich nach stundenlangen
> googeln so über LCD rausgefunden hab das nur die erste Zeile
> initialisiert wird, oder?

Nö. Da hast du dann schlecht recherchiert.
Das bedeutet, dass das LCD überhaupt nicht initialisiert wurde.
Selbst wenn du nur die Versorgungs und Kontrastspannung anlegst, 
erscheinen die beiden Balken. Sinn der Sache ist es, dem Benutzer eine 
Möglichkeit zur Einstellung des Kontrastes zu geben (und wahrscheinlich 
auch eine Rückmeldung, ob das LCD das zeitliche gesegnet hat)

> Ich weis das es Bascom lieber wäre wenn ich en Display mit nem HD44780
> Controller hätt, aber soeins gibts bei Reichelt nur für 18 Euro, und das
> is mir dann doch etwas zuviel^^

Tja. Wieviel sind dir die Stunden der bisherigen Fehlersuche wert :-)


> Vorhin bin ich dann hierrauf gestosen und hab das auch gleich Probiert (
> Beitrag "Bascom: Reichelt-LCD" ), und das was oben steht
> is nu bei rausgekommen, mit LCDs hab ich halt noch nie gearbeitet.

Darauf würde ich nicht allzuviel geben.
Dieses Posting stammt aus 2005. In der Zwischenzeit hat sich viel getan. 
BASCOM wurde weiterentwickelt. Da würde ich mal nach etwas Neuerem 
suchen.
#1478548
Lesenswert?

Kannst es ja einmal ausprobieren

Lüge BASCOM an und behaupte dein µC läuft mit 16Mhz. Wenn der Proz dann 
tatsächlich langsamer läuft hat BASCOM alles viel zu kurz berechnet und 
dein Programm braucht in Wirklichkeit für alles viel länger als BASCOM 
ausgerechnet hat.

Beim einem LCD darf man nur nicht zu schnell sein. Zu langsam kann man 
sein soviel man will :-)
#1478640
Lesenswert?

David Sutter schrieb:
> Ich versteh iwie nich was ich machen soll :P, also $crystal = 16000000 ,
> und dann?

nichts und dann. einfach ausprobieren.

Deine Vermutung war, dass dein 'Timing zu ungenau' ist. Bei einem LCD 
kann aber 'zu ungenau' nur heißen: 'zu schnell'.
Also lügen wir BASCOM so an, dass es das LCD viel langsamer als 
notwendig ansteuert. Wenn sich deine Befürchung bewahrheitet, dann 
müsste es funktionieren. Funktinoiert es dann immer noch nicht, dann ist 
deine Hypothese 'Timing zu ungenau' nicht haltbar.
Gast #1478642
Lesenswert?

Vielleicht ist der Controller ja auch einfach kompatibel?

Probier mal genau dieses Programm mit genau dieser Belegung:

$regfile = "2313def.dat"
$crystal = 16000000

Config Lcdpin = Pin , Db4 = Portd.0 , Db5 = Portd.1 , Db6 = Portd.2 , 
Db7 = Portd.3 , E = Portd.5 , Rs = Portd.4
Config Lcd = 16 * 2

Cls
Lcd "Hurra!"
do:loop


Belegung:

1,3,5 auf GND
2     auf 5V
4     auf RS
6     auf E
7-10  frei lassen
11-14 DB4-DB7
Gast #1478764
Lesenswert?

Super Leute!

Also ich habs jetz ohne den ganzen Krimskrams gemacht, also ganz normal, 
und hab noch mal alle Verbindungen gecheckt, bzw einfach alle kabel 
nochmal weg, und wieder verbunden, und es funzt!

Super, danke euch! Mach gleich noch en Pic :-)
Gast #1478887
Lesenswert?

Das:
1
ldi r24, $24                                                'hier die Anpassungen
2
rcall _lcd_control                                          'für das Reichelt-LCD
3
ldi r24, $9
4
rcall _lcd_control
5
ldi r24,$20
6
rcall _lcd_control


ICh würd jetz gern bischen Temperatur messen, ich weis nich ob jemand 
die Seite von ThomasPfeifer(.net) kennt, aber der misst iwo ne Temp mit 
ner Zenerdiode, wie genau hab ich da nich rausgefunden.

Diode hab ich da, bräucht ich nurnoch nen Anhaltspunkt wie ich das mess.
AD-Wandler hat der 2313 ja.

Wie stell ich das denn am geschicktesten an?

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