-         

+ Antworten
Ergebnis 1 bis 3 von 3

Thema: [gelöst] Zwei Display am AVR - geht nicht

  1. #1
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    29.12.2005
    Ort
    Nähe Mainz
    Alter
    25
    Beiträge
    3.467

    [gelöst] Zwei Display am AVR - geht nicht

    Anzeige

    Hallo,
    nachdem ich mich länger nicht gemeldet habe, habe ich nun mal wieder ein Problem, bei dem mir kein weiterer Lösungsweg einfällt.
    Deswegen hoffe ich, dass jemand von euch mir helfen kann.

    Ich habe Anfang 2007 mal nachgefragt, wie ich zwei LCDs an einen AVR anschließe. Da wurde mir gesagt, ich müsste das so machen, als ob ich ein 4*40 Zeichen LCD hätte, also DB4-7 und RS an die selben µC Pins, nur E der Dispalys an verschiedene Pins. Das habe ich auch gemacht. Die Pinbelegung sieht nun so aus:
    E1 = B.1
    E2 = B.6
    RS = B.0
    DB4 = B.5
    DB5 = B.4
    DB6 = B.3
    DB7 = B.2

    Und das Programm dazu sieht so aus:
    Code:
    'Die üblichen Anfangsdefinitionen, ohne die es nicht geht
    $regfile = "m32def.dat"
    $crystal = 11059200
    $baud = 19200
    
    'LCD
    $lib "lcd4e2.lbx"
    Config Lcd = 20 * 4
    Config Lcdpin = Pin , Db4 = Portb.5 , Db5 = Portb.4 , Db6 = Portb.3 , Db7 = Portb.2 , E = Portb.1 , E2 = Portb.6 , Rs = Portb.0
    Config Lcdbus = 4
    Dim ___lcde As Byte
    Initlcd
    Cursor Off Noblink
    
    'Main +++
    
    ___lcde = 0
    Locate 1 , 1 : Lcd "Hallo"
    Wait 3
    ___lcde = 1
    Locate 1 , 1 : Lcd "Hallo"
    Wait 3
    
    End
    Aber das will irgendwie nicht so, wie ich will...
    Beide LCDs zeigen einfach nichts an. Wenn ich immer nur eins betreibe funktionieren beide.

    Habe ich irgendetwas falsch gemacht?
    Könnte es sein, dass ich die Libery bearbeiten muss, da in der Pins festgelegt werden, an die das LCD angeschlossen ist, bzw. bei mir nicht angeschlossen ist. Wie müsste ich das ändern? Da müsste mir jemand helfen, da ich kein ASM kann.

    Ich hoffe, ihr könnt mir weiterhelfen!

    Viele Grüße,
    jon
    Nice to be back after two years
    www.roboterfreak.de

  2. #2
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    16.02.2006
    Beiträge
    1.111
    Hallo,
    ich habe das so gemacht:
    Code:
    $crystal = 16000000
    $regfile = "m128def.dat"
    
    Config Lcd = 40 * 4                                         'configure lcd screen
    Config Lcdpin = Pin , Db4 = Portc.4 , Db5 = Portc.5 , Db6 = Portc.6 , Db7 = Portc.7 , E2 = Portc.3 , E = Portc.2 , Rs = Portc.0
    
    Dim ___lcdno As Byte                                        'Umschaltbyte für Anzeige :
    
    ___lcdno = 0                                                'auf Chip 1 schalten
    Initlcd                                                     'die beiden oberen Zeilen
    Cursor = Off                                                'initialisieren
    Cls                                                         'die beiden oberen Zeilen löschen
     ___lcdno = 1                                               'auf Chip 2 schalten
    Initlcd                                                     'die beiden unteren Zeilen
    Cursor = Off                                                'initialisieren
    Cls                                                         'die beiden unteren Zeilen löschen
    
    Locate 1 , 1 : Lcd "Test 1. Zeile"
    Locate 2 , 1 : Lcd "Test 2. Zeile"
     ___lcdno = 1                                               'auf Chip 2 schalten
    Locate 1 , 1 : Lcd "Test 3. Zeile"
    Locate 2 , 1 : Lcd "Test 4. Zeile"
    Ich habe keine Lib verwendet, und die Umschaltvariable heißt dann ___lcdno.

    Gruß

    Rolf

  3. #3
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    29.12.2005
    Ort
    Nähe Mainz
    Alter
    25
    Beiträge
    3.467
    Danke! So funktioniert es.

    Wäre ich doch bloß früher darauf gekommen. Dann hätte ich die letzte Nacht ein paar Stunden länger geschlafen

    jon
    Nice to be back after two years
    www.roboterfreak.de

+ Antworten

Berechtigungen

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