www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Displaytech 162 LCD mit bascom ansteuern


Autor: David S. (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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:
$regfile = "2313def.dat"
'$crystal = 16000000

Ddrd = &B11111111                                           'LCD-Output


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

ldi r24, $24                                                'hier die Anpassungen
rcall _lcd_control                                          'für das Reichelt-LCD
ldi r24, $9
rcall _lcd_control
ldi r24,$20
rcall _lcd_control

Initlcd
Cls
Cursor Off Noblink

Locate 1 , 1
Lcd "Zeile1..."

Locate 2 , 1
Lcd "Zeile2..."

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

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
R/W des LCD hast du an Masse gelegt?
Beitrag "lcd mit KS0070B tut nicht"

Autor: David S. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Jo R/W liegt auf GND, aber könnte es daran liegen das ich mittem 
internen Oszilator arbeit und das Timing bei der Übertragung dann zu 
ungenau ist?

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht 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 :-)

Autor: David S. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich versteh iwie nich was ich machen soll :P, also $crystal = 16000000 , 
und dann?

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Klemm (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Klemm (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Reichelt scheint gerade down zu sein - was für einen Controller hat denn 
Dein Display?

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Klemm schrieb:
> Reichelt scheint gerade down zu sein - was für einen Controller hat denn
> Dein Display?

Hab nachgesehen als Reichelt noch up war:
Einen KS0070B

Autor: Klemm (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Der ist kompatibel. Ganz sicher.

Autor: David S. (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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 :-)

Autor: Klemm (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Welchen Krimskrams hast Du denn weggelassen?

Autor: David S. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das:
ldi r24, $24                                                'hier die Anpassungen
rcall _lcd_control                                          'für das Reichelt-LCD
ldi r24, $9
rcall _lcd_control
ldi r24,$20
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?

Autor: Klemm (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Die Threads hier zum Thema "A/D-Wandlung" und "Temperatursensor" lesen 
und den geschicktesten 'raussuchen und nachbauen!

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.