- Akku Tests und Balkonkraftwerk Speicher         
Ergebnis 1 bis 6 von 6

Thema: LCD ansteuern?

  1. #1
    neu hier
    Gast

    LCD ansteuern?

    Anzeige

    E-Bike
    Hallo

    Hab jetzt mal ein LCD Display an meinen AtMega8 angeschlossen. Hab mir auch das Tutorial auf microcontroller.net durchgelesen. Habs aber immer noch nicht geschafft, irgendwas auf dem Display darzustellen. Denke ich hab da auch noch irgend ein Problem mit den Wartezeiten, da ich ein 12 Mhz Quarz einsetz. Habs mit folgendem Programm probiert:

    ;; 4bit-Interface
    ;; DB4-DB7: PB0-PB3
    ;; RS: PB4
    ;; E: PB7
    ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;


    .include "m8def.inc"


    ldi r17, 0xFF
    out DDRB, r17
    ldi r16, LOW(RAMEND) ; LOW-Byte der obersten RAM-Adresse
    out SPL, r16
    ldi r16, HIGH(RAMEND) ; HIGH-Byte der obersten RAM-Adresse
    out SPH, r16



    ldi r16,0b11111111
    swap r16
    andi r16, 0b00001111
    sbr r16, 0b00010000
    out portb, r16

    rcall übern

    ldi r16,0b11111111
    andi r16, 0b00001111
    sbr r16, 0b00010000
    out portb, r16

    rcall übern

    übern: sbi portb, 7
    nop
    nop
    nop
    cbi portb, 7

    Vielleicht könnt ihr mir sagen wo meine Fehler liegen. Hab übrigens ein stink normales 2*16 Zeilen Display.
    Vielen Dank schonmal für eure Hilfe.

  2. #2
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    20.05.2004
    Ort
    N Stück rechts von Hamburg
    Alter
    35
    Beiträge
    166
    ldi r16,0b11111111
    ;r16=0xFF
    swap r16
    ;immer noch r16=0xFF
    andi r16, 0b00001111
    ;r16=0x0F

    lol... was bringt das bitte?
    dann würde ich mal ins Datenblatt gucken (genau! rtfm!) und feststellen dass das teil für jeden befehl ne verarbeitungszeit hat. ne ziemlich lange. schreib dir also ne schöne nop-schleife. dann schickst du erstmal ne initialisierung hin (steht auch im datenblatt), und dann erst darfst du anfangen zeichen hinzuschicken.
    PS: für Sourcecode gibts nen BBCode Befehl!

    mfG

    cht

  3. #3
    Gast
    wollte einfach mal ein Zeichen auf dem Display ausgeben. sorry hätte 11110000 heißen müssen, das hätte dann für das Zeichen "p" gestanden. Will das Board aber im 4 Bit modus betreiben. Wie schick ich dann die Initialisierung die im Datenblatt steht an den µC? Da steht alles in 8 Bt. Aber trotzdem Danke für Deinen Beitrag, auch wenn er mir nicht wirklich weiter geholfen hat... *g* was bringt mir ne nop Schleife bei 12 Mhz? Da müßte ich ja ein paar tausend nop`s hin schreiben.... oder seh ich das falsch? Naja, vielleicht erbarmt sich ja noch jemand mir zu helfen...

    MFG

  4. #4
    Gast
    Falsch, im Datenblatt steht das Timing genau drin. Zumindest in denen von Reichelt (HD44780). Die Initialisierung für den 4-Bit Modus ist doch auf mikrocontroller.net demonstriert!

  5. #5
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    20.05.2004
    Ort
    N Stück rechts von Hamburg
    Alter
    35
    Beiträge
    166
    Will das Board aber im 4 Bit modus betreiben. Wie schick ich dann die Initialisierung die im Datenblatt steht an den µC?
    während der initialisierung muss man möglichst früh den befehl "auf 4bit umstellen" senden. vorher braucht man die anderen 4 bit aber sowieso nicht, die sind da immer null.

    was bringt mir ne nop Schleife bei 12 Mhz? Da müßte ich ja ein paar tausend nop`s hin schreiben...
    Eine Schleife heißt übrigens Schleife weil man nicht alle befehle zigtausendmal hintereinanderschreibt, sondern weil man mithilfe eines Zählers einen Befehlsblock mehrmals durchläuft:

    Code:
    ;die folgende Warteschleife kannst du mit rcall warte aufrufen.
    
    warte:
    push r16        ;Inhalt von r16 sichern
    ldi r16, 0xFF   ;255 hineinladen
    schleifenstart:
    dec r16          ;r16:=r16-1
    nop               ;nichts tun
    ...
    nop
    tst r16           ;r16=0?
    brne schleifenstart ;wenn nein zu schleifenstart springen
    pop r16         ;r16 wiederherstellen
    ret                ;fertig.
    mfG

    cht

  6. #6
    Gast

Benutzer, die dieses Thema gelesen haben: 0

Derzeit gibt es keine Benutzer zum Anzeigen.

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

12V Akku bauen