Forum: Mikrocontroller und Digitale Elektronik Lcd home keine cursor bewegung


von hermo (Gast)


Lesenswert?

Nach dem Befehl LCD_Home bewegt sich der cursor nichtmehr weiter:
1
timer0_overflow:
2
rcall Display1_Home
3
ldi temp1, 'R'     ; Zeichen anzeigen
4
rcall Display1_Data
5
6
ldi temp1, 'R'     ; Zeichen anzeigen
7
rcall Display1_Data

Ein Timer ruft alle Paar Sekunden Display_Home auf, dannach wird das R 
geschrieben oder jeder andere Buchstabe doch das 2. R erscheint nicht, 
das anzeigen des Cursors zeigt, dass er sich nicht an die 2. bzw 3. 
position bewegt hat.

Der Timer ist sehr langsahm im sekundenbereich also ich denke nicht, 
dass es zu schnell ist fürs Display.

von M. P. (phpmysqlfreak)


Lesenswert?

Prozessor? Takt?
Mehr Code?  Display1_Data wäre interessant.

von hermo (Gast)


Lesenswert?

Problem gelöst, in der Initialisierung die ich vom Tutorial übernommen 
habe wird ein Befehl gesendet welches das nach links rücken des Cursors 
bewirkt was ich nun geändert habe hier code aus dem Tutorial:
1
Display1_Init:
2
push temp1
3
ldi   temp1,6
4
powerupwait:
5
rcall delay5ms
6
dec   temp1
7
brne  powerupwait
8
ldi   temp1,    0b00000011   ; muss 3mal hintereinander gesendet
9
out   DISPLAY1_PORT, temp1        ; werden zur Initialisierung
10
rcall Display1_Enable             ; 1
11
rcall delay5ms
12
rcall Display1_Enable             ; 2
13
rcall delay5ms
14
rcall Display1_Enable             ; und 3!
15
rcall delay5ms
16
ldi   temp1, 0b00000010      ; 4bit-Modus einstellen
17
out   DISPLAY1_PORT, temp1
18
rcall Display1_Enable
19
rcall delay5ms
20
ldi   temp1, 0b00101000      ; 4 Bit, 2 Zeilen
21
rcall Display1_Command
22
ldi   temp1, 0b00001111   ; Display on, Cursor off
23
rcall Display1_Command
24
ldi   temp1, 0b00000100      ; endlich fertig (Nix fertig hier Fehler richtig währe 0b00000110 um den cursor nach rechts zu verschieben)  
25
rcall Display1_Command
26
pop temp1
27
ret

Entry mode: 0b000001is

Legt die Cursor Richtung sowie eine mögliche Verschiebung des Displays 
fest

i = 1, Cursorposition bei Ausgabe eines Zeichens erhöhen //nach rechts
i = 0, Cursorposition bei Ausgabe eines Zeichens vermindern //nach links
s = 1, Display wird gescrollt, wenn der Cursor das Ende/Anfang, je nach 
Einstellung von i, erreicht hat.
Ausführungszeit: 40µs

Falls noch einer das Problem hat.

Beste Grüße

von Forengast (Gast)


Lesenswert?

hermo schrieb:
> in der Initialisierung die ich vom Tutorial

Von welchem Tutorial?
Gebe doch bitte einen Link an - dafür wurden die Dinger erfunden.

Danke

von hermo (Gast)


Lesenswert?


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
Noch kein Account? Hier anmelden.