mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik LCD 4 Bit Dateninterface


Autor: bluemole (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht 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

Autor: crazy horse (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
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.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.