- Labornetzteil AliExpress         
Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 15

Thema: Noch eine Frage zu LCD!

  1. #1
    Neuer Benutzer Öfters hier
    Registriert seit
    24.02.2005
    Ort
    Berlin
    Alter
    43
    Beiträge
    23

    Noch eine Frage zu LCD!

    Anzeige

    E-Bike
    Hallo @all!

    Hatte schon vor zwei Tagen meine Frage zur LCD Ansteuerung gestellt und mir wurde die Seite von Peter Fleury empfohlen. Dort habe ich mir die lcd.h und lcd.c runtergeladen. Nun habe ich in der Bibliothek die
    #define LCD_LINES 2
    #define LCD_DISP_LENGTH 20 beiden Sachen und den Port
    #define LCD_PORT PORTC verändert.
    Mein Display betreibe ich im 4-Bit Modus an Port C.
    RS =PortC4
    R/W=PortC5
    E=PortC6
    Datenltg.: DB4-DB7=PortC0-PortC3
    Datenltg.: DB0-DB3=Masse

    Nun habe ich noch in der lcd.c ganz am ende

    int main (void){

    void lcd_init ( uint8_t dispAttr ) ;
    lcd_clrscr();
    void lcd_clrscr ( void ) ;
    void lcd_puts ( const char * s ) ;

    }

    das geschrieben. Ich dachte mir das er das Display initialisieren müsste und es gelöscht wird (die eine sichtbare schwarze Zeile) und dann ein s
    ausgegeben wird.
    Ja leider funktioniert das aber nicht!
    Habe ich vergessen was in der lcd.h o. lcd.c zu ergänzen?

    MFG Decca

  2. #2
    Neuer Benutzer Öfters hier
    Registriert seit
    29.05.2004
    Ort
    Zuhause
    Alter
    37
    Beiträge
    28
    int main (void){

    void lcd_init ( uint8_t dispAttr ) ;
    lcd_clrscr();
    void lcd_clrscr ( void ) ;
    void lcd_puts ( const char * s ) ;

    }
    Du hast das nicht wirklich genau so in der Datei stehen?
    Wenn ja solltest du z.B. die Funktion lcd_puts auch richtig aufrufen, und der Variable einen Wert zuweisen o.ä.
    Bsp:
    Code:
    lcd_puts("s");
    Ausserdem würd ich dir empfehlen eine extra Datei für die Funktion main() anzulegen, also z.B. "main.c",
    Ja leider funktioniert das aber nicht!
    Welche Fehlermeldung zeigt denn der Compiler?

  3. #3
    Neuer Benutzer Öfters hier
    Registriert seit
    24.02.2005
    Ort
    Berlin
    Alter
    43
    Beiträge
    23
    Hallo KingNothing!

    Hab die Fehler schon korrigiert.
    Jetzt:

    int main(void)
    {


    DDRD &=~ (1 << PD2); /* Pin PD2 input */
    PORTD |= (1 << PD2); /* Pin PD2 pull-up enabled */


    /* initialize display, cursor off */
    lcd_init(LCD_DISP_ON);

    for (;
    {

    /* clear display and home cursor */
    lcd_clrscr();

    /* put string to display (line 1) with linefeed */
    lcd_puts("LCD Test Line 1\n");

    /* cursor is now on second line, write second line */
    lcd_puts("Line 2");
    /* move cursor to position 8 on line 2 */
    lcd_gotoxy(7,1);

    /* write single char to display */
    lcd_putc(':');
    }
    }

    Ich habe die lcd.c von Peter fleury als include mit eingefügt. Er zeigt mir keine Fehlermeldungen an. Jetzt das merkwürdige, wenn ich program device mache und das Programm auf den mega8 gebe, verschwindet der schwarze Balken und es sind zwei Zeilen ganz ganz schwach zu erkennen,ich denke das wird der Befehl lcd_clrscr(); sein.
    Wenn ich aber die Spannung neu am mega8 anlege bleibt der schwarze Balken.
    Es erscheint auch kein Zeichen auf dem Display!

    MFG Decca

  4. #4
    Neuer Benutzer Öfters hier
    Registriert seit
    29.05.2004
    Ort
    Zuhause
    Alter
    37
    Beiträge
    28
    Hmm, ich hab leider kein HD44780 Kompatibles Display hier, sonst würd ichs mal testen,
    mir dem schwarzen Balken das hört sich merkwürdig an, vielleicht liegts ja am Kontrast, oder du hast das Display vielleicht falsch angeschlossen?

  5. #5
    Neuer Benutzer Öfters hier
    Registriert seit
    24.02.2005
    Ort
    Berlin
    Alter
    43
    Beiträge
    23
    Ich habe schon mind. zehn mal überprüft ob das Display richtig angeschlossen ist. Bei mc-projekt.de steht das wenn die Spannung richtig anliegt mind. ein schwarzer Balken zu sehen sein sollte.
    Der geht ja auch weg mit clrscr(); ! Aber ich kann sonst nichts übergeben ans Display, zumindest zeigt es mir nichts an.

  6. #6
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    22.11.2003
    Beiträge
    991
    Moin,

    nimm mal das lcd_clrscr(); aus der Schleife. Ansonsten wird das Display viel zu oft pro Sekunde gelöscht und man kann gar nix mehr erkennen...

    MfG Kjion

  7. #7
    Neuer Benutzer Öfters hier
    Registriert seit
    24.02.2005
    Ort
    Berlin
    Alter
    43
    Beiträge
    23
    Moin!

    Also das Programm sieht jetzt so aus:

    #include <stdlib.h>
    #include <avr/io.h>
    #include <avr/pgmspace.h>
    #include <lcd.h>
    #include <lcd2.c>





    int main(void)
    {



    /* initialize display, cursor off */
    lcd_init(LCD_DISP_ON_CURSOR_BLINK);

    for (;
    {




    /* put string to display (line 1) with linefeed */
    lcd_puts("LCD Test Line 1\n");

    }
    }

    Es bleibt aber alles beim alten. Wenn ich das Programm überspiele verschwindet der schwarze Balken und es sind zwei ganz schwache Balken zu sehen. Die Kontrasteinstellung funktioniert, weil wenn der schwarze Balken zu sehen ist kann ich den Kontrast einstellen.

  8. #8
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    30.09.2004
    Ort
    In der Nähe von Esslingen am Neckar
    Beiträge
    706
    Hi Decca,
    hat sich das Problem gelöst?
    Gruß Michi

  9. #9
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    20.06.2004
    Beiträge
    1.941
    sag mal, was hast du für eine. for-schleife.
    das display geht ja gleich wieder aus. setzt diese init mal rein "lcd_init(LCD_DISP_ON)" und mache eine wihle-schleife mit eine delay-pause am ende.
    mfg pebisoft

  10. #10
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    30.09.2004
    Ort
    In der Nähe von Esslingen am Neckar
    Beiträge
    706
    Hi Pebisoft,
    ich glaube des bringt wenig den Thread zum Leben zu erwecken da Decca bestimmt nicht so bald das hier liest! Seine letzter Beesuch war im März!
    Gruß Michi
    P.S. Nochmal Danke für die Quelltexte hab jetzt erfolgreich ein LCD zum laufen gebracht! Klappt prima!

Seite 1 von 2 12 LetzteLetzte

Berechtigungen

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

12V Akku bauen