-         

Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 17

Thema: Problem mit einem LCD

  1. #1
    Moderator Robotik Einstein Avatar von Kampi
    Registriert seit
    21.11.2009
    Ort
    Monheim, Nordrhein-Westfalen, Germany
    Alter
    27
    Beiträge
    3.517
    Blog-Einträge
    9

    Problem mit einem LCD

    Anzeige

    Hallo

    Ich habe am Wochenende ein neues LCD gekauft und wollte es heute mal testen. Ich hab das Beispielprogramm vom RN-Wiki genommen und auf meinen Controller umgeschrieben aber das LCD zeigt den Text nicht an.
    Meine Frage ist nun ist das Programm falsch oder hab ich bei der Verkabelung was falsch gemacht?

    Hier das Programm:

    Code:
    $regfile = "m32def.dat"
    $crystal = 16000000
    
    Config Lcd = 20 * 4
    Config Lcdpin = Pin , Db4 = Portd.0 , Db5 = Portd.1 , Db6 = Portd.2 , Db7 = Portd.3 , E = Portd.5 , Rs = Portd.4
    Config Lcdbus = 4
    
    Cls
    Locate 1 , 1
    Lcd "Hallo Welt"
    
    End

  2. #2
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    18.05.2007
    Ort
    Berlin
    Alter
    46
    Beiträge
    765
    Ohne Infos über das LCD und den Schaltplan fällt eine Antwort nicht leicht...
    Wenn das Herz involviert ist, steht die Logik außen vor! \/

  3. #3
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    14.08.2007
    Ort
    Delmenhorst
    Alter
    32
    Beiträge
    731
    ISt das ein HD447 kompatibles?

  4. #4
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    18.11.2008
    Ort
    Kapfenberg
    Beiträge
    628
    Hallo!

    Versuch doch mal diesen Code:
    Code:
    $regfile = "m32def.dat" 
    $crystal = 16000000 
    
    Config Lcd = 20 * 4 
    Config Lcdpin = Pin , Db4 = Portd.0 , Db5 = Portd.1 , Db6 = Portd.2 , Db7 = Portd.3 , E = Portd.5 , Rs = Portd.4 
    Config Lcdbus = 4 
    
    Initlcd
    waitms 100
    Cls 
    Locate 1 , 1 
    Lcd "Hallo Welt" 
    
    End
    Grüße
    Thomas

  5. #5
    Moderator Robotik Einstein Avatar von Kampi
    Registriert seit
    21.11.2009
    Ort
    Monheim, Nordrhein-Westfalen, Germany
    Alter
    27
    Beiträge
    3.517
    Blog-Einträge
    9
    Jap ist es.
    Das ist dieses Display
    -> http://www.conrad.de/goto.php?artikel=181863

    Und Peterfido in erster Linie wollt ich wissen ob der Fehler am Programm liegt. Wenn das Programm soweit stimmt weiß ich das ich auf der Adapterplatine zwischen LCD und Mega32 (weil das LCD hat 12 einen 14 Pin Stecker und der Mega nur 10) ein Fehler ist.

    Und der Code funktioniert auch net.

  6. #6
    Erfahrener Benutzer Robotik Einstein Avatar von Jaecko
    Registriert seit
    16.10.2006
    Ort
    Lkr. Rottal/Inn
    Alter
    35
    Beiträge
    1.987
    Naja, ob das Programm stimmt, kann man ohne Displayangabe nicht sagen, da ein Display A durchaus anders angesteuert werden kann als Display B.

    Bei dem Conrad-Display ist es so; es ist fast mit den HD44780 kompatibel. Bei der Initialisierung brauchts nur noch ein Kommando mehr.
    #ifndef MfG
    #define MfG

  7. #7
    Moderator Robotik Einstein Avatar von Kampi
    Registriert seit
    21.11.2009
    Ort
    Monheim, Nordrhein-Westfalen, Germany
    Alter
    27
    Beiträge
    3.517
    Blog-Einträge
    9
    Kann es vielleicht sein das ich eine Lötbrücke auf der Rückseite des LCDs ändern muss da ich es ja im 4-Bit Modus betreibe?

  8. #8
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    16.02.2006
    Beiträge
    1.112
    Hallo Kampi,
    Zitat Zitat von Kampi
    Kann es vielleicht sein das ich eine Lötbrücke auf der Rückseite des LCDs ändern muss da ich es ja im 4-Bit Modus betreibe?
    Ne, das ist wohl zum Umschalten in den SPI Modus.
    Hast du den R/W Anschluss auf GND gelegt?
    Die Zeile
    Config Lcdbus = 4
    solltest du entfernen, da das LCD ja im PIN Modus betreibst (jeden Pin hast du einzeln angegeben).

    Wenn du mal nach KS0073 suchst, findest du diesen Thread zum Unterschied zum HD44780 Controller:
    http://www.roboternetz.de/phpBB2/viewtopic.php?t=9925
    Dort ist im hinteren Teil eigentlich alles erklärt.

  9. #9
    Moderator Robotik Einstein Avatar von Kampi
    Registriert seit
    21.11.2009
    Ort
    Monheim, Nordrhein-Westfalen, Germany
    Alter
    27
    Beiträge
    3.517
    Blog-Einträge
    9
    Nein R/W hab ich net auf Ground gelegt. Auch nicht die nicht angeschlossenen Datenpins.

    So ich hab mal auf
    http://www.roboternetz.de/phpBB2/viewtopic.php?t=10766
    bisl gelesen und dementsprechend was zusammengebastelt:

    Code:
    $regfile = "m32def.dat"
    $crystal = 16000000
    Config Lcd = 20 * 4a
    Dim Zeichen As Byte
    
    Declare Sub Lcdwrite
    
    'Pins des LCD-Modules setzen ggf. an eigene Anschlüsse anpassen
    
       Config Lcdpin = Pin , Db4 = Portd.0 , Db5 = Portd.1 , Db6 = Portd.2 , Db7 = Portd.3 , E = Portd.5 , Rs = Portd.4
       Initlcd
    
    
       Call Lcdwrite(&B00101100)
       Waitms 5
    
       Call Lcdwrite(&B00001001)
       Waitms 5
    
       Call Lcdwrite(&B00101000)
       Waitms 5
    
       Call Lcdwrite(&B00000110)
       Waitms 5
    
       Call Lcdwrite(&B00001100)
       Waitms 5
    
    Cls
    Locate 1 , 1
    Lcd "Hallo Welt"
    
       'Schreibt die Initialisierungs - Bits zum LCD
    
       Sub Lcdwrite(byval Zeichen As Byte)
    
         ' Höherwertiges Nibble setzen
         If Zeichen.4 = 1 Then Portc.4 = 1 Else Portc.4 = 0
         If Zeichen.5 = 1 Then Portc.5 = 1 Else Portc.5 = 0
         If Zeichen.6 = 1 Then Portc.6 = 1 Else Portc.6 = 0
         If Zeichen.7 = 1 Then Portc.7 = 1 Else Portc.7 = 0
         ' Höherwertiges Nibble übertragen
         Portc.3 = 1
         Waitms 1
         Portc.3 = 0
         Waitms 1
    
         ' Niederwertiges Nibble setzen
         If Zeichen.0 = 1 Then Portc.4 = 1 Else Portc.4 = 0
         If Zeichen.1 = 1 Then Portc.5 = 1 Else Portc.5 = 0
         If Zeichen.2 = 1 Then Portc.6 = 1 Else Portc.6 = 0
         If Zeichen.3 = 1 Then Portc.7 = 1 Else Portc.7 = 0
         ' Niederwertiges Nibble übertragen
         Portc.3 = 1
         Waitms 1
         Portc.3 = 0
         Waitms 1
    
       End Sub
    Allerdings kommt beim Kompilieren ein Fehler wo drin steht:
    Incorrect number of parameters und zwar in dieser Zeile:
    Call Lcdwrite(&B00101100)

  10. #10
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    18.11.2008
    Ort
    Kapfenberg
    Beiträge
    628
    Hallo!

    Versuch einfach mal die nicht angeschlossenen Pins auf GND zu legen und benutze herkömmlich den Initlcd-Befehl. Dann sollte es demenstprechend funktionieren.

    Grüße
    Thomas

Seite 1 von 2 12 LetzteLetzte

Berechtigungen

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