Gast
#2931190
Hallo, ich versuche gerade über Memory Mapped(8-Bit Interface), also vom 8051er ausgesehn, das Display wie einen externen RAM zu benutzen, Glue Logic halt. Die IDE ist Keil und Programmiersprache C. Hier mein bisheriger Code: http://pastebin.com/0Rx7XX5Y Also Text auf dem Display ausgeben funktioniert schonmal. Ein Tabulator ist 4 Charakters lang, d.h. 1-4, 4-8 etc. Wenn ich schreibe: printf("hallo\t"); dann werden ja die Zeichen einzeln in putChar(http://www.keil.com/support/man/docs/c51/c51_putchar.htm) eingelesen und aufs Display ausgegeben. Wenn aber nach dem 'o'(das wäre jetzt der 5te character) ein \t kommt, also ein tabulator muss ich den cursor auf stelle 8 setzen, weil nach dem o rausschreiben der Cursor auf Position 5 ist und 5 ist zwischen 4 und 8. Wie verschiebe ich nun den Cursor dahin? Wie muss ich das bei \n machen und bei \b(display löschen)? Sorry leute, aber ich stehe da vollkommen an irgendwie. Auch wenn ich mir eine deutsche Beschreibung von dem Display 8-Bit interface und die ganzen instructions des Displays durchlese komme ich nicht weiter. Also ich vermute mal ich muss die Funktion gotoXY verwenden, aber wie soll ich die schreiben, ich brauche da bitte ein bisschen Hilfe. Ich denke an der Programmiersprache C dürfte es nicht wirklich scheitern. Ich kenn mich wie gesagt mit der Hardware nicht aus und auch wenn ich mir die Beschreibung durchlese stehe ich an, darum bitte ich hier um Hilfe. ----- Folgende Infos zum Aufbau des Displays etc. habe ich mir notiert: LCD_GotoXY(Eingabeparameter X, Eingabeparameter Y) => Aufruf IR mit SetDDRAM ADDR setzt den Cursor in eine Zeile und eine Spalte! für x geht 0-19 oder 1...20 Pos auf der Zeile für Y geht 0-3 oder 1...4 Zeilen 1.Zeile: 0 - 19 dez 2.Zeile: 64 - 83 dez 3.Zeile: 20 - 39 dez 4.Zeile: 84 - 103 dez Im H-File für das Unterprogramm LCD_CursorPos(X,Y) => #define LCD_LINE_LENGTH 20 #define LCD_ADDR_LINE1 0 #define LCD_ADDR_LINE2 0x40 #define LCD_ADDR_LINE3 (LCD_ADDR_LINE1 + LCD_LINE_LENGTH) #define LCD_ADDR_LINE4 (LCD_ADDR_LINE2 + LCD_LINE_LENGTH) Für das Cursor setzen! char La[]={LA1,LA2,LA3,LA4} = ARRAY La...jeweils Startwerte der 4 Zeilen Vorteile des Arrays: braucht keine Abfragen damit man das in den Code-Speicher schreiben kann muss man const davor schreiben! z.B.: const char j[] = {La1,La2,La3,La4} geht aber mit einem if oder switch auch. ------ Ich verstehe nicht, was dieses const char j[] = {La1,La2,La3,La4} bringen soll. Und man kann es auch mit if und switch machen? Was ist damit gemeint in Bezug auf was? Bitte helft mir auf die Sprünge. Danke! mfg Gast