Forum: Mikrocontroller und Digitale Elektronik LCD 4 Bit Dateninterface


von bluemole (Gast)


Angehängte Dateien:

Lesenswert?

Hallo zusammen,

ich hab' da ein echtes Problem mit meinem LCD (HD44780U Controller)
8x2 Lines und 4 Bit Dateninterface. Ich möchte absolut keine Rechenzeit
verlieren und daher muss ich das Busyflag auswerten, leider klappt das
einfach nicht im 4 Bit Modi...
Im 8 Bit Modi funktioniert die Sache echt super mit dem fast gleichen
Codeausschnitt. Ich hab' keine Ahnung was ich noch probieren kann,
vielleicht hat ja schon jemand das Busyflag im 4 Bit Modi zum Laufen
gebracht oder hat sonst eine Idee.....

In Stiller Hoffung auf eine Lösung,
Michael

von crazy horse (Gast)


Lesenswert?

hab mal was aus dem Compilerlisting herauskopiert, das funktioniert
jedenfalls.Musst halt selbst durchsteigen.
Hoffentlich hast du daran gedacht, dass die Abfrage des busyflag erst
ab einem bestimmten Zeitpunkt der Initialisierung möglich ist?

          __base_y_G2:
000176        .BYTE 0x4
              .equ __lcd_direction=__lcd_port-1
              .equ __lcd_pin=__lcd_port-2
              .equ __lcd_rs=0
              .equ __lcd_rd=1
              .equ __lcd_enable=2
              .equ __lcd_busy_flag=7
          __lcd_x:
00017a        .BYTE 0x1
          __lcd_y:
00017b        .BYTE 0x1
          __lcd_maxx:
00017c        .BYTE 0x1

            .CSEG
          __lcd_ready:
0002e4 b3a4          in    r26,__lcd_direction
0002e5 70af          andi  r26,0xf                 ;set as input
0002e6 bba4          out   __lcd_direction,r26
0002e7 9aa9          sbi   __lcd_port,__lcd_rd     ;RD=1
0002e8 98a8          cbi   __lcd_port,__lcd_rs     ;RS=0
          __lcd_busy:
0002e9 d00c          rcall __lcd_delay
0002ea 9aaa          sbi   __lcd_port,__lcd_enable ;EN=1
0002eb d00a          rcall __lcd_delay
0002ec 999f          sbic  __lcd_pin,__lcd_busy_flag
0002ed cffb          rjmp  __lcd_busy
0002ee 98aa          cbi   __lcd_port,__lcd_enable ;EN=0
0002ef 9508        RET

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.