hallo, hab ein problem mit meinem LCD...ich möchte die position des cursors beliebig einstellen können z.b. spring auf die 2. linie und auf den 5. buchstaben .... jedoch funktioniert dies nicht richtig. ich muss ja die adresse des ddrams ändern, oder nicht? auf der ersten linie hab ichs so halb zum laufen gebracht aber wenn ich den cursor auf die 2. linie setze dann tut er so als würde er schreiben (er bewegt sich nach rechts) jedoch gibt es nur immer leerschläge...es sind nie zeichen zu sehen.... please help me! tnx! FaB
:
Gesperrt durch User
Hast du das LCD bei der Initialisierung auf 2 Zeilen eingestellt? Zum Positionieren des Cursors verwende ich das folgende Makro (avrasm): ;LCD-Cursor an bestimmte Position setzen .MACRO locate ;(Zeile,Spalte) push temp1 ldi temp1, 0b10000000|(((@0)-1)<<6)|((@1)-1) rcall lcd_command pop temp1 .ENDMACRO
hallo andres ja ich habs genau so gemacht wie du, funktioniert jedoch nicht. bei mir verschiebt es den aktuellen text auf dem display, wenn ich den cursor positionieren will...das hat doch was mit dem shift zu tun? wie geht das mit dem shift überhaupt? hab das datenblatt zwar schon mal von oben bis unten durchstudiert ... komm jedoch immer noch nicht richtig draus. nachdem es den aktuellen text verschiebt hat schreibt es dann den text, den es auch sollte RÜCKWÄRTS auf das Display....was ist da los? ein bisschen ne komische sache. gruss fab
hallo andreas, dies ist zwar schon ein veralteter thread, aber ich versuch mal mein glück: und zwar bringt avr studio bei mir immer eine fehlermeldung bei der zeile: [avrasm]ldi temp1, 0b10000000|(((@0)-1)<<6)|((@1)-1)[/avrams]
1 | error: syntax error, unexpeceted ',' |
ich versuche gerade deinen digitalen funktiongenerator nachzubauen und verwende einen atmega8 controller. vielen dank mfg mafer
Kurzer Auszug aus'm Tutorial: <----------------------------------------------------------------------- > Den Cursor neu positionieren. Display Data (DD) Ram ist vom Character Generator (CG) Ram unabhängig. Der Adresszeiger wird bei Ausgabe eines Zeichens ins DD Ram automatisch erhöht. Das Display verhält sich so, als ob eine Zeile immer aus 40 logischen Zeichen besteht, von der, je nach konkretem Displaytyp (16 Zeichen, 20 Zeichen) immer nur ein Teil sichtbar ist. aaaaaaa 7-bit DD RAM Adresse. Auf 2-zeiligen Displays (und den meisten 16x1 Displays), kann die Adressangabe wie folgt interpretiert werden: 1laaaaaa l = Zeilennummer (0 oder 1) a = 6-Bit Spaltennummer <----------------------------------------------------------------------- > Um in die zweite Zeile Spalte 3 zu springen sendet ihr dieses Command: 0b11 000010 ^ |------| | | Zeile Spalte
mafer schrieb: > hallo andreas, > > dies ist zwar schon ein veralteter thread, aber ich versuch mal mein > glück: Bitte nicht. Wenn er es in 9 Jahren nicht hingekriegt hat, braucht er es jetzt auch nicht mehr.