Basic: LCD-Ansteuerung mit Bascom ???

Die Programmierung des c't-Bot
KarstenHoffmann

Basic: LCD-Ansteuerung mit Bascom ???

Beitrag von KarstenHoffmann » 07 Mär 2006, 19:14

Hallo,
hat es schon jemand geschafft, mit BASCOM Zeichen auf dem LCD auszugeben? Ich habe mein Programm zur LED-Ansteuerung über das Schieberegister modifiziert, aber leider ist es mir noch nicht gelungen, Zeichen auf dem LCD auszugeben. Tipps und Hinweise sind willkommen.

Gruß

Karsten

noxon

Beitrag von noxon » 08 Mär 2006, 05:18

Hast du schon einmal unter "LCD" in der Hilfe nachgesehen?
Sieht eigentlich recht einfach aus. Du musst lediglich die richtigen Pins definieren und die kannst du ja aus dem C-Code entnehmen.

Gemacht habe ich das aber auch noch nicht. Ich werde es aber bald machen. Zumal morgen mein BASCOM-Buch ankommen müsste. Dann kann's so richtig losgehen :)

jack

Beitrag von jack » 08 Mär 2006, 08:31

Anscheinend wird mit PC5 das Busy-Flag der Anzeige eingelesen. Wenn das stimmt, dann ist an dieser Stelle D7 des LCD (595-QA).
An Ausgang QH des LCD-595 liegt dann D0. Man müsste dann im Programm das niedrigste Bit zuerst ausgeben.
Vielleicht gehts deswegen nicht.

Grüße

Jack

KarstenHoffmann

Beitrag von KarstenHoffmann » 08 Mär 2006, 08:52

Hallo,
klar, wenn das LCD nicht über das Schieberegister angesteuert würde, wäre es in BASCOM super simpel, aber so komme ich nicht klar. Ich habe mal versucht die Ansteuerung aus dem C-Programm nachzubauen, aber habe das bislang nicht hinbekommen. Vielleicht sind meine C-Kenntnisse auch nicht gut genug, dass ich irgendetwas nicht richtig verstanden habe. Ich werde am Wochenende mal versuchen, die Abfolge der Signalpegel an den Pins für das Schieberegister aus dem C-Programm Schritt für Schritt nachzuvollziehen und in BASCOM nachzubauen. Eigentlich habe ich das schon gemacht, aber da ist noch irgendwo der Wurm drin.

Gruß

Karsten

noxon

Beitrag von noxon » 08 Mär 2006, 09:38

Oh. Stimmt ja. Die Schieberegister. Dann ist es natürlich nicht so einfach. :) Hatte ich gar nicht mehr dran gedacht.

marvin
Wiki Master
Wiki Master
Beiträge: 385
Registriert: 18 Jan 2006, 16:21
Wohnort: Berlin
Kontaktdaten:

Beitrag von marvin » 08 Mär 2006, 10:30

Hallo,

in den C-Funktionen wird das Busy Flag über PC5 nicht ausgewertet, sondern mit Timeouts gearbeitet.
Wie sich inzwischen herausgestellt hat, ist nämlich in der Schaltung des c't-Bots der falsche Pin verdrahtet. PC5 müßte an D7 angeschlossen werden.
Ein entsprechender Hardware Patch ist bereits in Arbeit.
Hier gibt es schon mal ein Bild vom Umbau. Der Umbau ist allerdings nicht ganz einfach. Im Heise Forum wurde darüber auch schon berichtet.

Falls die BASCOM Routinen das Busy-Flag auswerten, könnte das die Erklärung sein, warum es nicht funktioniert.

Gruß marvin

KarstenHoffmann

Beitrag von KarstenHoffmann » 08 Mär 2006, 14:11

Hallo,
ich werte das Busyflag nicht aus, sondern habe, wie im C-Programm, einfach ein paar Wartezyklen (Assembler NOPs) eingebaut. Daran kann es also nicht liegen.

Gruß

Karsten

marvin
Wiki Master
Wiki Master
Beiträge: 385
Registriert: 18 Jan 2006, 16:21
Wohnort: Berlin
Kontaktdaten:

Beitrag von marvin » 08 Mär 2006, 14:46

Hallo Karsten,

ok, daran liegt es wohl nicht. Ich könnte heute abend Bilder von den Signalverläufen an den Schieberegister posten. Ist vielleicht einfacher, als die C-Quellen zu durchforsten.

Gruß marvin

jack

Beitrag von jack » 08 Mär 2006, 15:55

Hallo Karsten,

ich hab die Ansteuerung des Schieberegisters mit den 3 Ports in Assembler auf einem 2051 nachgebaut und schon die ersten Zeichen
geschrieben. Und wenns mit Assembler geht muß es auch mit Bascomgehen. PC5 ist jetzt sogar frei. Der Ablauf ist eigentlich ganz logisch:
Nach achtmal schieben (mit Clock runter rauf), Output löschen für Befehle oder setzen für Daten, anschließend RCLK rauf runter
(damit wird gleichzeitig das Enable fürs LCD produziert) und 100µs warten. Dann der nächste Befehl bzw. Daten.

Gruß Jack

jack

Beitrag von jack » 08 Mär 2006, 17:18

Halt, noch was: Beim Initialisieren zwischen den einzelnen Schritten 500µs warten. Also 38h-warten-6-warten-Ch-warten-1. Bevor man nun die Daten
schreibt, sogar 0,75ms warten, sonst werden die ersten Daten verschluckt. Danach gehts mit 100µs (evtl. 50) weiter.

Gruß Jack

KarstenHoffmann

Beitrag von KarstenHoffmann » 08 Mär 2006, 19:00

Hallo Jack,
vielen Dank. Mit Deiner Beschreibung habe ich es geschafft. Ich kann jetzt mit BASCOM Zeichen auf dem Display ausgeben :D :D :D
Nun werde ich mich mal daran versuchen, Sensorwerte auszulesen und auf dem Display darzustellen.

Gruß

Karsten

m.artmann

Beitrag von m.artmann » 08 Mär 2006, 20:01

Hallo,

Würdet Ihr vielleicht euren BASCOM Code hier veröffentlichen?
Vielleicht könnte man ja auch im Downloadbereich eine BASCOM Rubrik erstellen?

So müsste nicht jeder das Rad wieder neu erfinden bzw. könnten mehrere Leute an einem Problem arbeiten.
Ich würde mich ja auch gerne anschließen, aber leider ist mein c't Bot noch nicht da. :-(

Gruß
m.artmann

KarstenHoffmann

Beitrag von KarstenHoffmann » 08 Mär 2006, 23:40

Hallo,
ich habe ein kleines Beispiel zur Ansteuerung des Displays mit BASCOM hochgeladen. Download

Gruß

Karsten

noxon

Beitrag von noxon » 09 Mär 2006, 07:52

Danke für den Quellcode. Anhand solcher Beispiele lernt es sich immer am Besten.

FelixN

Beitrag von FelixN » 17 Feb 2009, 18:43

Hi,
bei blinken bei dem Beispiel leider nur die LEDs munter vor sich hin.
Ist das Absicht?
Ich versuche jetzt seit einigen Tagen ein 20x4 Display mit dem KS0073 Controler zum laufen zu bekommen und rall einfach nicht was ich falsch mache.
Bin um jeden Tip dankbar!

Felix

Antworten