Forum: Mikrocontroller und Digitale Elektronik Bascom: Ks0073 Lcd


von Dirk (Gast)


Lesenswert?

Hi,

ich habe heute mein 4 * 20 Dip Display bekommen.

Jetzt habe ich festgestellt das sich die Speicheradressen fuer die
Zeilen unterscheiden als bei hd44780 Displays ... somit funktioniert es
mit den Bascom Routinen zur Zeilenauswahl nicht.

Ich habe dann kurzer Hand mir meine eigene Routinen geproggt (lcdcls ,
stringausgabe). Da mein 2 * 16 Dip KS0073 Display ohne Probleme
funtktioniert sind es halt nur die Speichadressen fuer die Zeilen die
anders sind. Weiss jemand wo die Adressen fuer die Zeile liegen? Welche
lib ?
Ich habe mir schon die Lib`s angeschaut aber nicht herausgefunden wo
die Zeilenadressen liegen.

Ich wollte mir ersparen die ganzen anderen Funktionen nochmal zuproggen
....

Mfg

Dirk

von Stefan Kleinwort (Gast)


Lesenswert?


von Dirk (Gast)


Lesenswert?

Hi,

wie es funktioniert ist mir eigentlich klar. Ich moechte nur die
Zeilenadressen in Bascom aendern. Leider finde ich die Adressen nicht
oder ich such in der falschen Lib.

Mfg

Dirk

von Stefan Kleinwort (Gast)


Lesenswert?

steht doch in dem Link.

Unter 2.3.3. 4-Zeilen-Displays

Stefan

von Dirk (Gast)


Lesenswert?

Hi,

hehe wir reden so ein kleines bischen aneinander vorbei. Hab mich auch
bloede ausgedrueckt.

So ist es vielleicht besser gesagt.

Wo finde ich in "Bascom" die Zeilenadressenzuordnung fuer die
Display`s. Mit Config LCD = 4 * 20 lege ich ja die Zeilenadressen fest.
Ich finde nirgends diesen Ausdruck in den Lib's. Sind diese Befehle
fest in BAscom einprogrammiert und nicht aenderbar?

Mfg

Dirk

von Stefan Kleinwort (Gast)


Lesenswert?

Oh sorry.
Das weiss ich leider nicht.

Stefan

von Divison (Gast)


Lesenswert?

Ach ja die Geschichte. Wenn man jemandem rät:" Nimn NICHT CODEVISIONAVR
ODER BASCOM, da kannste nicht alles selbermachen weil man nicht an den
Quellcode kommt." Will das immer keiner hören.

Und dann kommen genau SOLCHE Probleme dabei raus.

Wie wärs mit avr-gcc. Ist zwar nicht das einfachste am Anfang, aber
hinterher..... eine wahre FREUDE. Ich kanns immer nur wiederholen. In
meiner LCD.C zum Beispiel steht ALLES drin byte für byte.

von Sven (Gast)


Lesenswert?

Hallo Dirk,

da kommt man so nicht drann.....
Kann dir nur empfehlen eine e-mail an Mark zu schreiben.

Gruß

Sven

von ATmega8Tester (Gast)


Lesenswert?

Hallo Dirk,

in der Bascom-Hilfe steht folgendes:

CONFIG LCD = LCDtype

Configure the LCD display and override the compiler setting.
LCDtype This can be :
40 * 4
6 * 1
16 * 2
...
or 20*4A

The 20*4A is also special.
It uses the addresses &H00, &H20, &H40 and &H60 for the 4 lines.

Ich verwende folgenden Code:

...
CONFIG LCD = 20*4A
...

Sollte dies bei Dir nicht zum Erfolg führen, bitte den genauen Typ des
LCD angeben. Für die richtige Initialisierung habe ich e.v. einen
Quellcode für Dich.

Schöne Grüße
Jürgen

von Shazter (Gast)


Lesenswert?

Hi,

ich habe jetzt das LCD Display per SPI angeschlossen und die
Initalisierung funktioniert schon. Ich bin nun dabei die ganzen anderen
Funktionen wie z.B. Cursor on usw miteinzubinden. Wenn alles fertig ist
werde ich die Routinen in der Codesammlung bereit stellen.

Ich bedanke mich trotzdem fuer deine Hilfe. Leider war es ein bissel zu
spaet oder ich war zu voreilig.


Mfg

Dirk

von Dirk (Gast)


Angehängte Dateien:

Lesenswert?

Hi,

ich hatte mich wohl zu frueh gefreut. Ich wollte das LCD Display per
SPI ansteuern. Leider funktioniert die Init wohl nicht richtig, weil
ich keine Zeichen gesendet bekomme. Ich habe die INIT aus dem Datasheet
genommen. Ich verzweifel so langsam .... ich kann naemlich auch kein
Fehler in meinen Routinen finden.
Muss das LCD im SPI Modus anders initalisiert werden?

Ich hoffe jemand hat eine Idee ich sitze langsam echt auf dem Schlauch.
Anbei mal mein Code.

mfg
Dirk

von Dirk (Gast)


Lesenswert?


von Shazter (Gast)


Lesenswert?

Hi,

ein Fehler ist mir Schlaf eingefallen. Ich hatte gestern von MSB auf
LSB den Spi Bus gestellt.


Somit sind meine beiden Startbytes falsch ....

fuer die Funktion Writecmd muss das Startbyte auf &H1F und fuer
Writedat auf &H5F gestellt werden.

Leider funktioniert es somit immer noch nicht ganz .....


Mfg

Dirk

von Dirk (Gast)


Lesenswert?

Hi,

so es funktioniert Prgramm liegt in der Codesammlung



mfg

Dirk

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.