- Labornetzteil AliExpress         
Ergebnis 1 bis 6 von 6

Thema: LCD über I2C C-Bibliothek für AVR

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Neuer Benutzer Öfters hier
    Registriert seit
    19.01.2006
    Ort
    Aschaffenburg
    Beiträge
    23
    Super!
    Wenn was nicht geht, dann sag bescheid damit ich es anpassen kann!

    Grüße
    Nico

  2. #2
    Neuer Benutzer
    Registriert seit
    23.11.2009
    Ort
    Saarland
    Alter
    39
    Beiträge
    3
    Hallo,
    erstmal zu meinem Problem: Zeichen der Reihe 3 werden in Reihe 1 angezeigt, nach änderung von Parametern geht das in Reihe 1, jedoch nicht mehr in Reihe 2. Noch maliges Anpassen führt nur zum entgültigen Erlöschen des Display.
    Ich habe das ganze mit einem eigenen ATmega8 Test Board und der I2C Erweiterung versucht, als Umgebung benutze ich "Atmel Studio 6.2".
    Das Display ist ein Displaytech 204A, also ein 20 Zeichen * 4 Zeilen Display .
    Im Code habe ich die Zeilen angepasst:

    #define LCD_I2C_DEVICE 0x40 /**< Change this to the address of your expander */
    #define LCD_LINES 4 /**< Enter the number of lines of your display here */
    #define LCD_ROWS 20 /**< Enter the number of rows of your display here */

    #define LCD_LINE1 0x00 /**< This should be 0x00 on all displays */
    #define LCD_LINE2 0x40 /**< Change this to the address for line 2 on your display */
    #define LCD_LINE3 0x14 /**< Change this to the address for line 3 on your display */
    #define LCD_LINE4 0x54 /**< Change this to the address for line 4 on your display */


    Bei LCD_LINES und LCD_ROWS habe ich auch schon versucht 2 Lines und 40 ROWS, jedoch ohne erfolg.

    Eine "i am alive LED" funktioniert nur bis zur lcd_init. dann ist alles eingefroren.

    ...
    while(1)
    {

    PORTB ^= (1<<PB0);
    i2c_init();

    PORTB ^= (1<<PB0);
    lcd_init();

    PORTB ^= (1<<PB0);
    unsigned char string1[] = "Alles ATMEGA_8 1";
    unsigned char string2[] = "Alles ATMEGA_8 2";
    lcd_gotolr(1,1);
    lcd_print(string1);
    lcd_gotolr(3,1);
    lcd_print(string2);

    ...

    - Was kann ich an der Konfiguration falsch gemacht haben?
    - Was läuft mit der Anzeige schief (dass Zeile 3 die Fortsetzung von Zeile 1 ist ist mir bekannt, jedoch nicht, wieso Zeichen 21 an Stelle von Zeichen 17 erscheint und ab dann weiter gezählt wird...)

    Danke schon mal für die Hilfe.
    Grüße

  3. #3
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    11.08.2009
    Ort
    Berlin
    Alter
    69
    Beiträge
    348
    Hallo Atlas85
    Dein Fehler sieht nach Speicher aus. Wenn das Zeichen auf Platz 17 erscheint, könnte dort etwas nicht stimmen. Vielleicht stinmmt die Position der Ausgabe nicht. Stell mal den ganzen Code rein. Vielleicht hast du zwei unterschiedliche Positionen angegeben.
    achim

  4. #4
    Neuer Benutzer
    Registriert seit
    23.11.2009
    Ort
    Saarland
    Alter
    39
    Beiträge
    3
    Hallo,

    danke schon mal für den Tipp.
    Ich habe soeben mal nochmal alles aus dem Schrank geholt und beim Messen fiel mir auf, dass weder SDA noch SCL etwas tun.
    Alle Dateien die ich verwende sind als Anhang in einem ZIP Archiv. Wie schon erwähnt verwende ich AtmelStudio 6.2, also habe ich die Projektdatei mit dazu gepackt.

    Grüße
    Angehängte Dateien Angehängte Dateien

Berechtigungen

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

LiFePO4 Speicher Test