- LiFePO4 Speicher Test         
Seite 2 von 6 ErsteErste 1234 ... LetzteLetzte
Ergebnis 11 bis 20 von 54

Thema: LCD Write

  1. #11
    Gast
    Anzeige

    E-Bike
    ok super, danke noch mal vielmals, jetzt hab ichs verstanden

  2. #12
    Gast
    hmm..

    auf folgender seite http://www.wieselsworld-online.de/th...LCDCommand.htm sind die kommandos aufgelistet, die ja in 2 takten über die datenleitungen übertragen werden, aber in den spaltenüberschriften, was soll das, das is irgendwie verwirrend.. :/

  3. #13
    Gast
    sind außerdem 10 bits und nicht 8 ..

  4. #14
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    07.01.2004
    Ort
    München
    Alter
    75
    Beiträge
    214
    Na ja, die Tabelle beschreibt, was das LCD braucht, nämlich:
    8 Datenbits: D0 (das LSB) bis D7 (das MSB)
    das R/W bit ("Read/Write"): 0 = zum LCD schreiben, 1 = vom LCD lesen
    das RS bit ("register select"): 0 = die Daten gehören in eins der LCD Register, 1 = die Daten gehören ins DD oder ins CG RAM

  5. #15
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    22.11.2003
    Beiträge
    991
    Das mit den 10 Bit stimmt schon

    8-Bit Daten ( D0 - D7 ), 2-Bit Steuerleitungen ( RS, R/W ).

    MfG Kjion

  6. #16
    Gast
    jap is schon klar, aber was hat das mit den kommandos zu tun? werden die über die leitungen übertragen? ich hätt geglaubt die werden in 2 takten über d4 - d7 übertragen..

  7. #17
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    07.01.2004
    Ort
    München
    Alter
    75
    Beiträge
    214
    Die Tabelle beschreibt ja nur, was das LCD braucht: 8 bit für die Daten, und 2 bit zur Steuerung (damit Du dem LCD sagen kannst, was Deine 8 bit bedeuten sollen).

    Wenn Du das LCD im 8-Bit mode betreibst, musst Du die 8 Datenbits D0 bis D7 und die Steuerbits R/W und RS richtig anlegen und das mit einem Toggle auf der zusätzlichen E-Leitung ("chip enable") dem LCD signalisieren. Du brauchst also insgesamt 8 + 2 + 1 = 11 Leitungen von Deinem Controller zum LCD.

    Wenn Du aber das LCD im 4-Bit mode betreibst, musst Du die 8 Datenbits
    in zwei "Takten" übertragen: zuerst die höherwertigen 4 bits, dann die niederwertigen; diese bits müssen jedesmal an die 4 höherwertigen bits des LCD angelegt werden, also an die LCD Leitungen D4 bis D7; und bei beiden Takten müssen auch wieder R/W und RS richtig angelegt sein, und Du musst das Chip enable E togglen. Insgesamt brauchst Du damit 4 + 2 + 1 = 7 Leitungen von Deinem Controller zum LCD. Du hast also 4 Leitungen gespart, musst aber jedes Byte in zwei Takten übertragen.

  8. #18
    Gast
    "diese bits müssen jedesmal an die 4 höherwertigen bits des LCD angelegt werden" -- meinst du niederwertigen?

    also hat das nix damit zu tun, dass zB beim kommando cursor home (0000000010) über der port d1 gesetzt ist? ich versteh ja dass die daten im niederwertigen teil des byteports in 2 takten übertragen werden, also zuerst hi- und dann lo-nibble!

    aber wie kann man ein 10-bit-langes kommando senden, wenn man in 2 takten 4 bits sendet (4*2 = 8!) und was haben die spaltenüberschriften mit den kommandobits zu tun?

  9. #19
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    07.01.2004
    Ort
    München
    Alter
    75
    Beiträge
    214
    "diese bits...": Jetzt kapiere ich das Missverständnis:
    Ich meine die LCD Datenleitungen D4 bis D7 (das ist halt so festgelegt beim 4 bit mode des LCD), und das sind die 4 höherwertigen bits des LCD im 8-bit modus.
    Bei der CC1 sind diese 4 Leitungen D4 bis D7 üblicherweise verdrahtet mit Port[9] bis Port[12], und das sind die 4 niedrigwertigen Bits des byteport[2]; die LCD Leitungen D3 bis D0 sind nicht zur CC1 verdrahtet.


    "also hat das...":

    Wenn Du das cmd "CursorHome" zum LCD schicken willst, musst Du dem LCD irgendwie sagen: "RS=0" und R/W=0" und "Daten=0000 0010".

    Im 8-bit modus könntest Du das in einem einzigen "Ausgabe-Takt" erledigen:
    OUT 0 nach RS
    OUT 0 nach R/W
    OUT 0000010 nach D7..D0
    TOGGLE E
    (Insgesamt gibst Du dabei 2 + 8 + 1 = 11 bits ans LCD aus)

    Im 4-bit modus brauchst zu zwei Takte:
    Zuerst Takt 1:
    OUT 0 nach RS
    OUT 0 nach R/W
    OUT 0000 nach D7..D4
    TOGGLE E
    Dann Takt 2:
    OUT 0 nach RS
    OUT 0 nach R/W
    OUT 0010 nach D7..D4
    TOGGLE E
    (Jeder Takt gibt 2 + 4 + 1 = 7 bits ans LCD aus!)

    Bei der CC1 benutzt Du dafür das Unterprogramm LCD_WRITE (oder so ähnlich);
    das kann sowieso nur schreiben - deshalb brauchst du das R/W bit nie angeben;
    auch das E-bit zum Togglen wird automatisch gemacht -- Du siehst es deshalb nicht.
    Du musst nur noch sagen, ob Du ein ASCII char meinst(LCD_WRITECHAR), oder ein Kommando (LCD_WRITECMD),
    und welche Daten Du senden willst (alle 8 bits, in einem byte).
    Abhängig davon wird im Unterprogramm das RS bit zum LCD gesetzt, und dann Dein Byte in den zwei Takten zum LCD übertragen - zuerst das höhere Halbbyte, dann das niedere.

  10. #20
    chris152
    Gast
    edit: aus Datenschutzgründen entfernt

Seite 2 von 6 ErsteErste 1234 ... LetzteLetzte

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
  •  

Solar Speicher und Akkus Tests