- MultiPlus Wechselrichter Insel und Nulleinspeisung Conrad         
Seite 1 von 5 123 ... LetzteLetzte
Ergebnis 1 bis 10 von 43

Thema: LCD über I²C an ATmega 32: Dringend Hilfe benötigt!!!

  1. #1

    LCD über I²C an ATmega 32: Dringend Hilfe benötigt!!!

    Anzeige

    LiFePo4 Akku selber bauen - Video
    Hi. Ich versuche ein 16*2 LC Display über den I²C Anschluss meines RN-controls zu betreiben. Der Aufbau erfolgt gemäß AN_118 von der MCS electronics Seite mit dem Porterweiterungsbaustein PCF8574P.Die Library ist auch in Bascom eingefügt. Zunächst einmal habe ich versucht das demoprogramm auf von der Seite ablaufen zu lassen. Leider tut sich nix. Das einzige was auf dem Display zu sehen ist, dass zuerst die erste und die Hälfte der zweiten Zeile dunkel werden und danach der Cursor (scheinbar) wahrlos auf dem Dislpay herumspringt.
    Ich habe die Schaltung schon mehrmals neu aufgebaut um eventuelle Fehler auszuschließen.Sogar einmal auf dem Steckbrett. Schaltung über ein anderes Controllerboard betrieben. Display ist auch nicht defekt, da es funktioniert, wenn ich es normal mit 6 Leitungen vom Controller betreibe.
    Ich werde wahnsinnig
    Brauche dringend Hilfe

  2. #2
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    11.09.2004
    Ort
    Düsseldorf
    Beiträge
    3.948
    Ich gehe mal davon aus das du das Display vorher mal "normal" angeschlossen hast und es in Ordnung ist.
    Dann bleiben eigentlich nur zwei Möglichkeiten.

    Entweder Verdrahtungsfehler, Nicht abgeschlossener I2C Bus oder Software wie zb. fehlende Initialisierung bzw. zuwenig speicher für Umgebung.



    An der Lib liegt es jedenfalls nicht, die Nutze ich seit einigen jahren.


    Überprüf nochmal in Ruhe alles.
    Gruß
    Ratber

  3. #3
    verdrahtungsfehler ist auszuschließen, da ich die schlatung sehr oft^^über prüft und sogar komlett neu aufgebaut habe.
    aber ich glaube mit deinem tipp komme ich der lösung schon etwas näher.
    was bedeutet fehlende initialisierung? ich dachte die wird sozusagen automatisch vorgenommen wenn ich die .lib verwende?
    was könnte ich an einem gegebenen speicherproblem machen?
    lg vielen dank

  4. #4
    Erfahrener Benutzer Robotik Visionär Avatar von 021aet04
    Registriert seit
    17.01.2005
    Ort
    Niklasdorf
    Alter
    36
    Beiträge
    5.056
    Es gibt normalerweise gibt es einen oder mehrere Befehle, mit dem man das LCD initialisiert. Was das für ein Befehl ist müsstest du in der Dokumentation nachlesen.

  5. #5
    laut Autor der lcd_i2c.lib genügt es folgendes zusäzlich am angang eines programmes zu schreiben:

    $lib "Lcd_i2c.lib"
    Const Pcf8574_lcd = &H40
    Config Scl = Portd.6
    Config Sda = Portd.7
    Dim _lcd_e As Byte
    _lcd_e = 128

    ist natürlich angepasst auf atmega32.
    das display zeigt nichts (bzw. nichts sinnvolles^^)

  6. #6
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    11.09.2004
    Ort
    Düsseldorf
    Beiträge
    3.948
    Da fehlt noch was


    Config I2cdelay = 9

    ...um den bustakt anzupassen
    (Wert anpassen)



    Config Lcd = 20 * 4
    ...um anzugeben welches Display man hat.
    (Wer anpassen)


    Dann noch CLS zum Initialisieren.


    Danach kannst du deine ausgaben starten
    Gruß
    Ratber

  7. #7
    so hab ich hinzugefügt.ich hab i2cdelay variiert. --lcd funkioniert immer noch nicht
    ich schreib mal meinen Bascom code. vielleicht findet jemand den fehler:

    $regfile = "m32def.dat"
    $hwstack = 32
    $framesize = 32
    $swstack = 32
    $crystal = 16000000
    $baud = 9600


    $lib "lcd_i2c.lib"
    Config I2cdelay = 4
    Const Pcf8574_lcd = &H40
    Config Scl = Portc.0
    Config Sda = Portc.1
    Enable Interrupts
    Dim _lcd_e As Byte
    _lcd_e = 128
    Config Lcd = 16 * 2
    Waitms 700
    Cls


    Locate 1 , 1
    Lcd "Hello world."


    ich verwende übrigens ein Display von Conrad mit einem KS0066 Controller. liebe grüße

  8. #8
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    11.09.2004
    Ort
    Düsseldorf
    Beiträge
    3.948
    Hmmm...seltsam.

    ab und an gibt es LCDs die etwas länger für den Init brauchen.

    Füge hinterm CLS noch ein Waitms 300 ein und schau obs klappt


    Den i2cdelay sehe ich jetzt nicht aber ich denke den hast du schon drinne ja ?
    einfach mal auf 15 (Je höher desto langsamer) stellen um sicher zu gehen.
    Config Lcd mit drinn ?


    Edit:

    Hab grad erst gelesen welchen Controller dein display hat.
    Bascom sollte mit dem klar kommen.

    Ich hatte oben mal gefragt ob du das LCD "normal" getestet hast.
    Hast du ?
    Gruß
    Ratber

  9. #9
    klappt leider immer noch nicht.i2c delay ist auch mit drin.config lcd auch.
    ich hab auch schon gedacht das vielleicht das display oder der controller davon kaputt ist, da hab ichs "normal" gestestet; also normal 4 bit ansteuerung mit insgesamt 6 portleitungen. hat einwandfrei geklappt. ich versteh es mittlerweile auch nicht mehr.

  10. #10
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    11.09.2004
    Ort
    Düsseldorf
    Beiträge
    3.948
    Wenn es "Normal" geht dann liegt es nicht am Display.

    Bleiben also nur software oder ein Verdrahtungsfehler.

    die Pullups am I2C sind drann ja ?
    Gruß
    Ratber

Seite 1 von 5 123 ... LetzteLetzte

Berechtigungen

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

12V Akku bauen