-         

Ergebnis 1 bis 5 von 5

Thema: Problem - I2Cbus geht nicht mit LC-Display

  1. #1
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    17.11.2005
    Beiträge
    272

    Problem - I2Cbus geht nicht mit LC-Display

    Anzeige

    Hallo Leute,

    ich habe mal eine ganz doofe Frage. Ich habe das Polli Board und kann ohne Probleme auf den I2C-EEProm zugreifen sollange ich es per RS232 mache. Wenn ich das LC-Display anklemme geht das Display, aber der I2C Bus streikt.

    Code:
    $regfile = "m16def.dat"
    $crystal = 8000000
    $baud = 9600
    
    'Config Lcdpin = Pin , Db4 = Porta.3 ,  Db5 = Porta.4 ,  Db6 = Porta.5 ,  Db7 = Porta.6 , E = Porta.0 , Rs = Porta.2
    'Config Lcdbus = 4
    'Config Lcd = 16 * 4
    
    'Config Porta = Output
    
    Config Sda = Portc.1
    Config Sdl = Portc.0
    
    Dim Adress As Byte
    
    Adress = 160
    
    'Locate 1 , 1
    '   Lcd "I2C Test"
    
    'Lowerline
       I2cstart
       I2cwbyte Adress
    
       If Err = 1 Then
          Print "Error" ; Adress
       Else
          Print "Verbindung erfolgreich" ; Adress
       End_if
    
       I2cstop
    
    end
    Wenn ich den Code per Print nutze, geht er pürima. Er findet den EEprom und es kommt Verbindung erfolgreich. Wenn ich das per LCD mache, dann steht da nur "I2C Test" und mehr passiert nicht. Durch probieren habe ich rausbekommen, das es bis dorthin arbeitet, wo die I2C Anweisungen anfangen. Ich muss aber alles vom LCD Auskommentieren. Dann gehts. Sonst nicht.

    Liegt das an der Lib vom LCD? Oder ist das ein bekannter FEhler?

    Hoffe auf eure Hilfe

    thx Arno[/code]
    Unser Wissen ist ein Tropfen, unser Unwissen ist wie ein Ozean.
    Sir Isaac Newton

  2. #2
    Neuer Benutzer Öfters hier
    Registriert seit
    28.02.2009
    Beiträge
    22
    ein ähnliches Problem hatte ich auch. Ich bin aber nur ein Anfänger, bin mir daher nicht sicher ob ich es richtig gelöst habe.
    Das Programm wurde unheimlich eingebremst durch LCD-Befehle. Hab dann I2C auf Hardware Twi geändert, also Programm unabhängig. Und siehe da, es lief wieder.
    Jetzt hab ich aber das Display auch über I2C angeschlossen, mit der I2C-lcd-lib. Die geht wieder nicht mit Twi. Nun hab ich die Lib etwas umgeschrieben, mal gehts, mal nich. Ich verzweifle auch langsam.

  3. #3
    Erfahrener Benutzer Robotik Einstein Avatar von Jaecko
    Registriert seit
    16.10.2006
    Ort
    Lkr. Rottal/Inn
    Alter
    35
    Beiträge
    1.987
    kann ohne Probleme auf den I2C-EEProm zugreifen sollange ich es per RS232 mache
    Wie? Du greifst per RS232 auf den I2C-EEPROM zu?

    Falls du meinst, dass du die Fehlerausgabe per RS232 oder LCD machst:
    Eine I2C-Kommunikation sollte nicht durch irgendwelche Ausgaben (egal ob UART oder LCD) unterbrochen werden.
    V.a. die Ausgabe auf einem LCD dauert derart lange, dass Busteilnehmer durchaus einen Timeout erzeugen und die Verbindung abbrechen.

    Also die Variable Err zwischenspeichern und erst dann ausgeben, wenn die I2C-Verbindung beendet wurde.

    Ansonsten: Sind an dem Pollin-Board Pullups an SCL/SDA?
    #ifndef MfG
    #define MfG

  4. #4
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    17.11.2005
    Beiträge
    272
    Wie? Du greifst per RS232 auf den I2C-EEPROM zu?
    Ohje, was habe ich da den geschrieben. Hast recht. Die Fehler oder Ergebnissausgabe per RS232 geht. Per LCD geht nicht. Ich habe erst den I2C bus ausgelesen und anschließend wollte ich den Wert per LCD ausgeben.

    Das Programm funzt halt bei RS232. Wenn ich an die selben Stelle den PRINT Befehl durch einen LCD Befehl ersetzte oder auch nur die Config des LCD Displays einbaue fragt er nicht mal den I2C Bus ab. Also habe ich die ganzen LCD Befehle weggelassen und es ging immer noch nicht. Erst als ich alles was mit dem Display zu tun hat rausnehme geht es.

    Und ja, die Widerstände sind drin. Es geht auch alles per I2C. Halt nu icht in Kombo mit LCD

    Ist irgendwie merkwürdig. Habt ihr ähnliche Probleme?

    thx Arno
    Unser Wissen ist ein Tropfen, unser Unwissen ist wie ein Ozean.
    Sir Isaac Newton

  5. #5
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    18.05.2007
    Ort
    Berlin
    Alter
    46
    Beiträge
    765
    config lcdbus nutze ich nie..

    Ich würde noch eine Hauptschleife einbringen. Ein paar Nops zwischen den I2C-Befehlen können nicht schaden.
    Wenn das Herz involviert ist, steht die Logik außen vor! \/

Berechtigungen

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