Hallo Zusammen, im Thread Beitrag "Einfacher Low Cost LCD Controller für 320x240 LCD im Textmodus" hat Benedikt eine Textausgabe im Assembler gemacht, diese ASM wollte ich in Bascom übertragen. Soweit habe ich das fertig gestellt, aber es gibt keine Ausgabe. Da ich nicht unbedingt fit bin in ASM würde ich mich freuen wenn jemand der in Bascom und ASM auskennen würde und mir Tips bzw. die Fehler aufzeigen könnte. Das Programm soll nur den Zeichensatz er am Anfang erscheint ausgeben, später soll dann der Eigene Text im Speicher sein ( Dim Zei As String * 40 At &H200 ) Ich stehe erst am Anfang, obwohl die Umsetzung eigentlich gehen sollte, muss ich was übersehen haben, daher bitte ich um Hilfe. In der Simulation sieht es gut aus und Arbeit ähnlich wie bei Benedikts asm Code. Was habe ich Übersehen? Anbei die BAS Datei und ASM Datei von Benedikt. Danke für die Anregungen.
Hallo , du kannst auch ein .ORG 512 einbauen vor Data und statt const .equ nehmen.
Jo hilft mir schon weiter -> Bloss die Adresse des zeichensatzes beginnt jetzt bei 1050 statt bei 1024 :(
Warum versuchst Du nicht einfach mal, ein bissel ASM zu lernen? Der AVR kann kein BASCOM und der wird es auch nicht lernen. ;-) Um in BASCOM oder C dasselbe zu erreichen wie Benedikt in ASM, musst Du BASCOM oder C und ASM schon verdammt gut beherrschen. Alternativ kannst Du Benedikts Programm unbesehen (und unverstanden) in einen Mega8 flashen und von einem anderen AVR (auch unter BASCOM) den Text über UART an den Mega8 senden. Sieh den Mega8 einfach als "LCD-Controller". ...
Achja, der Zeichensatz muss exakt bei einer Pagegrenze beginnen. Und die muss mit den Konstanten im Programm (Pointer auf Startzeile setzen, Pointer auf Endzeile prüfen) übereinstimmen. ...
und dann gibts noch die Möglichkeit ASM in BASCOM einzubinden. Wollts nur mal erwähnt haben. bye Frank
Ich fange auch an ASM zu lernen :) und den Code von benedikt habe ich studiert . Durch die Eigenarten von Bascom ist es nicht so einfach 1:1 umzusetzen auch die Hilfe (Mix ASM in Bascom ) habe ich gelesen. Pagesize -> Wie setze ich den Pointer richtig ? Anbei mein Aktuellen Code und paar Register geändert damit das zu Bascom kompatibel ist.
Na ob Benedikts Codes das Richtige zum Lernen für Einsteiger ist, wage ich zu bezweifeln. Gut, den LCD-Code habe ich mir noch nicht angesehen, dafür aber den Code für die Textausgabe (25 Zeilen zu 40 Zeichen) für den TV, aus dem ich die Anregung für mein OSD-Projekt für ATV gefunden habe. Beide Codes dürften sich in punkto Zeitknappheit nicht allzuviel nehmen. Auch der Umgang mit dem Charset dürfte recht ähnlich sein. Das Ganze ist halt nur mit ziemlich effizienter ASM-Programmierung erreichbar, bei der alle oft genutzten Variablen in Registern gehalten werden müssen um das Tempo zu schaffen. BASCOM hält seine Variablen aber grundsätzlich im RAM. Verzichte bei diesem Projekt auf BASCOM und nimm es wie es ist oder arbeite in ASM im AVR-Studio. ...
Das kritische Timeming ist HLOOP und ich gebe jetzt nicht die 800 Zeichen, sondern erstmal die hälfte aus, Aufgrund das Bascom die Variabeln im Speicher vorhält. Ich nehme Bascom, wenn die die Ausgabe steht ,da ich paar Sub Proggen möchte. Vielleicht könnte sich das jemand das Programm Anschauen, vielleicht sind ja nur paar kleine Fehler drin die ich übersehen habe, vielleicht geht's dann. Habe schon viel gelernt und umgesetzt, war auch schwierig durch Benedikts Code Durchzusteigen, aber der Kern die HLOOP Schleife ist die Ausgabe und die habe ich nur bei mir eingebaut. Ab Adresse H200 steht die ASCII Zeichen die Ausgegeben werden sollen. Danke
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.