-
        

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

Thema: LCD intialisierung

  1. #1
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    18.07.2006
    Ort
    bei Karlsruhe
    Alter
    24
    Beiträge
    106

    LCD intialisierung

    Anzeige

    Hallo zusammen,
    Ich habe gestern und vorgestern vergeblich versucht mein Pollin 4x16 LCD zum funktionieren zu bewegen. (http://www.pollin.de/shop/downloads/D120573D.PDF)

    Ich habe schon diverse Ansteuerungsmethoden ausprobiert und keine hat funktioniert (auser der von Bascom, um zu testen ob das Disply möglicherweise defekt ist ).

    Das Beste ergebnis unter C erbrachte die LCD-Lib von Ulrich Radig, bei der immerhin zu erst in der 1. und 3. Zeile ein schwarzer stich auftauchte und dann nach ca. 15s sich das Display mit " ' ''DU5B "' ''DU5B ", was in der 2. Zeile stand meldete.

    Kann mir jemand helfen? [-o<

  2. #2
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    20.05.2006
    Ort
    Lippe
    Alter
    48
    Beiträge
    524
    Hallo,

    vermutlich kann dir jemand helfen.

    Am besten postest du den Code, der das beste Ergebnis gezeigt hast. Dann erklärst du, was du an dem Ergebnis anderes erwartet hast.
    Wichtig währe noch, dass du schreibst du, ob du das Display mit 4 oder 8 Leitungen ansteuerst und ob du Bussy-Bit auswerten möchtest, usw. Mit anderen Worten wie du das Display angeschlossen hast.

    Gruß

    Jens

  3. #3
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    18.07.2006
    Ort
    bei Karlsruhe
    Alter
    24
    Beiträge
    106
    Hallo,
    ich habe im Anhang den Code gespeichert.

    Anschluss: Alles an PortB

    Rs: 4
    R/W: 5
    E: 6
    Datenleitungen 4-7: 0-3

    µC: Mega48; ohne Quarz (=Standardtakt)
    Angehängte Dateien Angehängte Dateien

  4. #4
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    20.05.2006
    Ort
    Lippe
    Alter
    48
    Beiträge
    524
    Hallo,

    nach dem ersten Überfliegen, konnte ich nichts finden. Bitte hilf mir noch etwas. Wenn du das Display gar nicht ansprichst sollten zwei schwarze Streifen zu sehen sein, okay? Dann schreib vor die Endlosschleife mal folgende Zeilen
    Code:
    	lcd_init();
            lcd_write (2,0);
            //lcd_write (65,1);
    Danach löscht du // und schreibst, was auf dem Display in beiden Fällen zu sehen war.

    Gruß

    Jens

  5. #5
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    18.07.2006
    Ort
    bei Karlsruhe
    Alter
    24
    Beiträge
    106
    also wenn ich den Code von oben einfüge kommen erst die 2 Schwarzen Zeilen, dann kommt wieder DU5B " DU5B

    wenn ich die Kommentierung aufhebe, erscheinen erst die 2 zeilen und dann nach einiger weit wieder das mit DU5B nur noch je ein Punkt vor DU5B

    wenn ich die 2. Zeile Kommentiere kommen 2 schwarze Streifen und dann wieder die obrige Ausgabe

  6. #6
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    20.05.2006
    Ort
    Lippe
    Alter
    48
    Beiträge
    524
    Hallo,

    auf die Ausgabe DU5B kann ich mir keinen Reim machen. Ich habe den Code mal mit meinem verglichen. Vielleicht hilft, dir diese init Routine ja weiter.

    Code:
    void InitLCD ()
    {
    uint8_t i;
    	LCD_RS_PORT &=~(1<<LCD_RS_PIN);
    	LCD_RW_PORT &=~(1<<LCD_RW_PIN);
    	for (i=0;i<3;i++)
    	{	
    		SetData (0x03);
    		EnablePuls();
    		_delay_loop_2 (0xFFFF);			
    	}
    	CheckBusy ();			
    	SetData  (2);
    	EnablePuls();
    	CheckBusy ();
    	WriteData (1,0x28);
    	WriteData (1,0x06);
    }
    SetData ersetzt du durch lcd_write (Data,0);

    Enablepuls ist bei dir
    LCD_Port_Write |= (1<<LCD_E);
    WAIT();
    LCD_Port_Write &=~ (1<<LCD_E);

    _delay_loop_2 (0xFFFF); Die Zeit ist übertrieben lang, bin ich aber immer gut mit gefahren.

    Für CheckBusy();
    while ((lcd_read(0)&(1<<BUSYBIT)) > 0 && timeout++ < 500) {};

    Es gibt dann aber noch den Unterschied, dass ich mit SetData nur die verbundenen 4Bits anspreche.Zu dem Zeitpunkt ist die Interfacebreite ja noch nicht eingestellt.
    Mit WriteData schreibe ich, wie in deinem Programm, dann erst die oberen 4 und dann die unteren 4Bits.Da könnte es auch noch ein Problem geben. Aber versuchs erst einmal wie oben beschrieben.

    Gruß

    Jens

  7. #7
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    18.07.2006
    Ort
    bei Karlsruhe
    Alter
    24
    Beiträge
    106
    Hallo Jens,
    kannst du mir viellericht deinen ganzen Code geben, da dein und mein Code scheinbar etwas verschieden sind und ich zich Fehler/Warnmeldungen beim Kompilieren bekomme, wegen undeklarierten Funktionen und Variablen

    Gruss Josef

  8. #8
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    20.05.2006
    Ort
    Lippe
    Alter
    48
    Beiträge
    524
    Hallo,

    poste ich hier morgen.

    Du musstest schon die Funktionen ersetzen. Hier mal das was du bis morgen probieren kannst

    Code:
    for (i=0;i<3;i++){
       lcd_write (0x03,0); 
       LCD_Port_Write |= (1<<LCD_E);
       WAIT();
       LCD_Port_Write &=~ (1<<LCD_E); 
      WAIT();
    }
    lcd_write (0x02,0);
    LCD_Port_Write |= (1<<LCD_E);
    WAIT();
    LCD_Port_Write &=~ (1<<LCD_E);
    timeout = 0; 
    while ((lcd_read(0)&(1<<BUSYBIT)) > 0 && timeout++ < 500) {}; 
    lcd_write (0x28,0);
    LCD_Port_Write |= (1<<LCD_E);
    WAIT();
    LCD_Port_Write &=~ (1<<LCD_E);
    timeout = 0; 
    while ((lcd_read(0)&(1<<BUSYBIT)) > 0 && timeout++ < 500) {}; 
    lcd_write (0x06,0);
    Danach sollte das Display leer und bereit zum Empfang von Daten sein.


    Gruß

    Jens

  9. #9
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    20.05.2006
    Ort
    Lippe
    Alter
    48
    Beiträge
    524
    Hallo,

    hier der Code der bei mir läuft.
    In der lcdportdef.h passt du den Anschluß des LCD's an.
    Musst mal schauen, das nop im global.h schreibst du vielleicht in einen schon vorhandene Headerdatei. Aber so ein bisschen sollst du ja auch noch zu tun haben.

    Fragen oder Kritik immer man her.

    Gruß

    Jens
    Angehängte Dateien Angehängte Dateien

  10. #10
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    18.07.2006
    Ort
    bei Karlsruhe
    Alter
    24
    Beiträge
    106
    McJenso, danke für die ganze mühe, aber ich kann mir aus dem Code leider kein Beispielpreogramm deuten :X köntest du hier bitte ein posten (hauptsache, das lcd kommt irgendwie darin vor )

    Gruss Josef

Seite 1 von 2 12 LetzteLetzte

Berechtigungen

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