Selbstdef.Zeichen

OP #460700
Lesenswert?
• ▲
▼
Durch das Datenblatt hab ich das bis jetzt so verstanden,so 
funktionierts aber leider noch nicht.Das ist nur die Definition-Habs dnn 
wie ein normals ASCII Zeichen von Adresse 00 versucht aufzurufen,auf was 
muss ich denn noch achten???(die hilfe wenns geht auch in assembler)

SELBSTDEF       mov       #1, R10
              mov       #004h, R11
              call      #SEND
              mov       #1, R10
              mov       #000h, R11
              call      #SEND


              bis.b           #BIT0, &P3OUT
              mov       #1, R10
              mov       #00h, R11
              call      #SEND
              mov       #1, R10
              mov       #004h, R11
              call      #SEND
              bic.b     #BIT0, &P3OUT

              mov       #1, R10
              mov       #004h, R11
              call      #SEND
              mov       #1, R10
              mov       #001h, R11
              call      #SEND


              bis.b           #BIT0, &P3OUT
              mov       #1, R10
              mov       #00h, R11
              call      #SEND
              mov       #1, R10
              mov       #004h, R11
              call      #SEND
              bic.b     #BIT0, &P3OUT

               mov       #1, R10
              mov       #004h, R11
              call      #SEND
              mov       #1, R10
              mov       #002h, R11
              call      #SEND


              bis.b           #BIT0, &P3OUT
              mov       #1, R10
              mov       #00h, R11
              call      #SEND
              mov       #1, R10
              mov       #004h, R11
              call      #SEND
              bic.b     #BIT0, &P3OUT

               mov       #1, R10
              mov       #004h, R11
              call      #SEND
              mov       #1, R10
              mov       #003h, R11
              call      #SEND


              bis.b           #BIT0, &P3OUT
              mov       #1, R10
              mov       #00h, R11
              call      #SEND
              mov       #1, R10
              mov       #004h, R11
              call      #SEND
              bic.b     #BIT0, &P3OUT

               mov       #1, R10
              mov       #004h, R11
              call      #SEND
              mov       #1, R10
              mov       #004h, R11
              call      #SEND


              bis.b           #BIT0, &P3OUT
              mov       #1, R10
              mov       #001h, R11
              call      #SEND
              mov       #1, R10
              mov       #005h, R11
              call      #SEND
              bic.b     #BIT0, &P3OUT

               mov       #1, R10
              mov       #004h, R11
              call      #SEND
              mov       #1, R10
              mov       #005h, R11
              call      #SEND


              bis.b           #BIT0, &P3OUT
              mov       #1, R10
              mov       #00h, R11
              call      #SEND
              mov       #1, R10
              mov       #00Eh, R11
              call      #SEND
              bic.b     #BIT0, &P3OUT

               mov       #1, R10
              mov       #004h, R11
              call      #SEND
              mov       #1, R10
              mov       #006h, R11
              call      #SEND


              bis.b           #BIT0, &P3OUT
              mov       #1, R10
              mov       #00h, R11
              call      #SEND
              mov       #1, R10
              mov       #004h, R11
              call      #SEND
              bic.b     #BIT0, &P3OUT

               mov       #1, R10
              mov       #004h, R11
              call      #SEND
              mov       #1, R10
              mov       #007h, R11
              call      #SEND


              bis.b           #BIT0, &P3OUT
              mov       #1, R10
              mov       #00h, R11
              call      #SEND
              mov       #1, R10
              mov       #00h, R11
              call      #SEND
              bic.b     #BIT0, &P3OUT

              ret
Gast #461106
Lesenswert?
• ▲
▼
Du hast ein Problem. Deine Fragestellung ist vollkommen konfus!
Also erstmal tief durchatmen, nachdenken und dann das Problem 
darstellen. Von Anfang an.

Welcher Controller?
Welches Display?
Welche Schaltung?
Was soll gemacht werden?
Etc.

MFG
Falk
Gast #461119
Lesenswert?
• ▲
▼
Wenn Du letztens den Hinweis auf das Datenblatt beherzigt hast, sollte 
es ja eigentlich kein Problem sein, anhand des dort dargestellten 
Beispiels ein selbstdefiniertes Zeichen zu erstellen. Hast Du das 
Beispiel im Datenblatt auf der zweiten Seite denn mal ausprobiert? Du 
musst immer erst die CG-RAM-Adresse setzen und im nächsten 
Schreibvorgang die Display-Daten für die ausgewählte Pixelzeile 
schreiben.

Ich will jetzt nicht versuchen, mich durch den Assembler-Code 
durchzuwursteln, auch weil es nicht viel bringen dürfte, da er 
unvollständig ist.

Wenn Du bei der Definition der Zeichen folgende Hinweise beachtest, dann 
müsste es funktionieren:
1. Es wird für jede Pixelzeile inkl. Cursorzeile ein Schreibvorgang 
benötigt, also insgesamt 8.
2. Die Adresse einer Pixelzeile im CG-RAM setzt sich aus der Adresse des 
Zeichens (0x00...0x07) und der Nummer der Zeile (0..7, von oben gesehen) 
zusammen. Insgesamt besteht die Adresse einer Zeile aus 6 Bit, wobei die 
drei höherwertigen die Adresse des Zeichens sind und die niederwertigen 
drei die Nummer der Zeile.
3. Beim Schreiben einer CG-RAM-Adresse müssen (wie beim Schreiben einer 
DD-RAM-Adresse) das RS- und das R/W-Signal "0" sein.
4. Das Bit Nr. 7 im Adressbyte muss zum Setzen einer CG-RAM-Adresse "0" 
und das Bit Nr. 6 "1" sein. Also wenn im Zeichen mit der Adresse "0x01" 
die dritte Zeile geschrieben werden soll, dann lautet das Adressbyte 
(mit Leerstellen, um die einzelnen Blöcke zu verdeutlichen) "01 001 
010", wobei "01" die Bits darstellen, die dem Display-Controller 
mitteilen, dass eine CG-RAM-Adresse geschrieben werden soll. Das 
folgende "001" ist die Adresse des Zeichens, das definiert werden soll. 
"010" ist die Nummer der Zeile, also 0x02 für die dritte Zeile (die 
erste ist 0x00).
5. Nach dem Setzen der Adresse müssen im nächsten Schreibvorgang die 
Daten für die Pixelzeile geschrieben werden (RS = "1" und R/W = "0"). Ob 
CG-RAM- oder DD-RAM-Daten geschrieben werden, hängt nur davon ab, auf 
welchen Speicher der letzte Adressierungsvorgang bezogen war.
6. Zum Schreiben der nächsten Pixelzeile muss wieder erst die Adresse 
wie unter 3. und 4. beschrieben gesetzt werden. Dann wird die nächste 
Pixelzeile geschrieben usw...
OP #461281
Lesenswert?
• ▲
▼
Das mit der Definition dieses Zeichens müsste ja hin hauen...hab deine 
Anweisungsschritte soweit befolgt...
Aber der Aufruf funktioniert irgendwie nicht...
hab dann versucht das Zeichen mit:  darzustellen

                 call            #SELBSTDEF    ;aufruf der 
definition(oben)
              bis.b     #BIT0, &P3OUT
              mov       #1, R10
              mov       #000h, R11
              call      #SEND
              mov       #1, R10
              mov       #000h, R11
              call      #SEND
              bic.b     #BIT0, &P3OUT

                  ...
muss ich da noch was anderes beachten?
(aber auch andere normal ASCII zeichen stellts nach dem 
Definitionsaufruf nicht dar...)

Gast #461284
Lesenswert?
• ▲
▼
Du musst erst eine DDRAM-Adresse setzen, bevor Du ein Zeichen ausgibst. 
Wenn Dein Programm das nicht tut, dann kommt auch nix vernünftiges raus, 
weil der Display-Controller dann immer noch im CG-RAM rumeiert.

Antwort schreiben

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.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.