-         

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

Thema: LCD zeigt wirres Zeug

  1. #1
    Benutzer Stammmitglied
    Registriert seit
    07.05.2007
    Ort
    Soest
    Alter
    27
    Beiträge
    43

    LCD zeigt wirres Zeug

    Anzeige

    SMARTPHONES & TABLETS-bis zu 77% RABATT-Kostenlose Lieferung-Aktuell | Cool | Unentbehrlich
    Hi

    Ich bin Anfänger in Sachen Microcontrollertechnik und habe mir einen ATmega32 wie im Wiki beschrieben aufgebaut.
    Das hat auch alles soweit funktioniert.
    Jetzt möchte ich gerne ein LCD anschliesen und ich habe hier das allgemein bekannte 27*4 Wintek von Pollin.
    Ich habe folgendes Programm hier im Forum gefunden und angepasst:
    Code:
    $regfile = "m32def.dat"
    $framesize = 32
    $swstack = 32
    $hwstack = 32
    $crystal = 16000000
    $baud = 9600
    
    Dim ___lcdno As Byte                                        'Umschaltbyte für Anzeige :
                                                     '0 = Chip 1 ; 1 = Chip 2
    
    'LCD initialisieren
    
    Config Lcd = 40 * 4                                         'Anzeigemodus 40 x 4 Zeichen
    Config Lcdpin = Pin , E = Portc.1 , E2 = Portc.2 , Rs = Portc.3 , Db4 = Portc.4 , Db5 = Portc.5 , Db6 = Portc.6 , Db7 = Portc.7
    ___lcdno = 0                                                'auf Chip 1 schalten
    Initlcd                                                     'die beiden oberen Zeilen
                                                     'initialisieren
    Cls                                                         'die beiden oberen Zeilen löschen
     ___lcdno = 1                                               'auf Chip 2 schalten
    Initlcd                                                     'die beiden unteren Zeilen
                                                    'initialisieren
    Cls                                                         'die beiden unteren Zeilen löschen
    
    
    'Lcd Anzeige Ausgeben
    
    'Die 2 Oberen Zeilen Anzeigen
    
    ___lcdno = 0
    
    Locate 1 , 1
    Lcd "1. Die erste Zeile" ;
    
    Locate 2 , 1
    Lcd "2. Die zweite Zeile"
    
    Cursor Off
    
    'Die 2 Unteren Zeilen Anzeigen
    
    ___lcdno = 1
    
    Locate 1 , 1
    Lcd "3. Die dritte Zeile" ;
    
    Locate 2 , 1
    Lcd "4. So einfach ist das !!!!"
    
    Cursor Off
    
    End                                                         'Programmende
    Damit zeigt mein Display aber nicht das was es anzeigen soll.
    Ich habe das Display mit einem ca. 40cm langen Flachbandkabel angeschlossen. Das dürfte doch eigentlich kein Problem sein oder?
    Ich hab mal ein Bild angehängt

    Vielen Dank schonmal,

    Benni
    Miniaturansichten angehängter Grafiken Miniaturansichten angehängter Grafiken img_5799.jpg  

  2. #2
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    28.10.2004
    Ort
    Baoding
    Alter
    37
    Beiträge
    687
    Das selbe Problem habe ich auch gerade auf PortC mit dem Display. Auf Port A funzt es! Wenn man da nich noch was an den Fuses oder so umstellen muß

  3. #3
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    28.10.2004
    Ort
    Baoding
    Alter
    37
    Beiträge
    687
    Am PortC hängt noch das JTAG-Interface. Das sollte mann in den Fuses deaktivieren. (was bei mir schon der Fall war aber halt meinen fehler nicht behebt)

    EDIT: Nach einer Neuprogrammierung ist alles i.o nach einem Reset stimmen die Zeilen 3 und 4 nicht. Das Programm neu Aufspielen dann passts wieder...bis zum nächsten Reset
    Miniaturansichten angehängter Grafiken Miniaturansichten angehängter Grafiken lcd2_.jpg   lcd1_.jpg  

  4. #4
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    29.01.2005
    Alter
    45
    Beiträge
    294
    Hi Rofo,

    ohne Deinen Code wird Dir niemand helfen. (Hilfe ist so nämlich auch nicht möglich!)

    Gruß Dnerb
    Das Gegenteil von "gut" ist "gut gemeint"!

  5. #5
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    24.07.2005
    Ort
    18km südl. Lutherstadt Wittenberg
    Alter
    41
    Beiträge
    142
    Hi,

    wegen der Kabellänge: ich habe bei meiner Temperaturregelung der Tiefkükltruhe ca 10 Meter !!! Kabel zwischen Prozessor und Display -> funzt ohne Probleme.
    MfG Dani.

  6. #6
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    28.10.2004
    Ort
    Baoding
    Alter
    37
    Beiträge
    687
    @Dnerb

    Mit dem Code wirds auch nich leichter da der ja Funktioniert nur nach dem Reset was nicht stimmt.

    Code:
    $regfile = "m32def.dat"
    $lib "lcd4e2.lib"
    $crystal = 16000000
    Dim ___lcde As Byte
    ___lcde = 0
    
    
    Cls
    Lcd "    Pollin 27*4 LCD TEST   "
    Locate 2 , 1
    Lcd "          Zeile 2          "
    
    ___lcde = 1                                                 'write to the 2 last lines
    Cls
    Lcd "          Zeile 3         "
    Locate 2 , 1
    Lcd "          Zeile 4         "
    End
    In der Lib wurde nur der Port angepasst.

  7. #7
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    29.01.2005
    Alter
    45
    Beiträge
    294
    Dir fehlt auf jeden Fall schonmal "initlcd".
    Das Gegenteil von "gut" ist "gut gemeint"!

  8. #8
    Benutzer Stammmitglied
    Registriert seit
    07.05.2007
    Ort
    Soest
    Alter
    27
    Beiträge
    43
    Hi

    Vielen Dank schonmal für eure Antworten!!

    Ich habe jetzt das LCD an Port A angeschlossen und den Code angepasst, aber da tut sich jetzt garnichts mehr (d.h. es werden halt eben die beiden Balken angezeigt, wie immer wenn man Saft aufs LCD gibt).
    Naja, ich kümmer mich morgen mal da drum, hab jetz keine Zeit mehr

    Benni

  9. #9
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    28.10.2004
    Ort
    Baoding
    Alter
    37
    Beiträge
    687
    @Dnerb

    Nö fehlt mir nicht weil man ein INITLCD nicht braucht.

    Die Hilfe sagt dazu "The LCD display is initialized automatic at start up when LCD statements are used by your code."

    Was sollte ein INITLCD auch helfen wenns an PortA funzt aber nicht an PortC?

  10. #10
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    24.12.2006
    Alter
    51
    Beiträge
    117
    ist nur eine vermutung, setzte mal eine wartezeit vor dem cls ein.
    so etwa mit waitms 100 anfangen und weiter verkleinern.

Seite 1 von 2 12 LetzteLetzte

Berechtigungen

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