-         

Ergebnis 1 bis 10 von 10

Thema: I2C Frage

  1. #1

    I2C Frage

    Anzeige

    Hallo,
    Könnte mir einer von euch erklären wie ich den PCF 8574 P IC mit einem atmega32 benutzen kann ?
    Ich Programmiere in bascom.

    Ich stelle mir das folgender massen vor(ob das wirklich geht weiß ich nicht), über mein Programm auf dem Atmega32 möchte ich jeden Pin einzelnt an und ausschalten.

    Hoffentlich versteht man was ich suche.

    Vielen Dank schon mal für eure hilfe.

    Gruß maus

  2. #2
    Erfahrener Benutzer Robotik Einstein Avatar von Andree-HB
    Registriert seit
    10.12.2004
    Ort
    Bremen
    Alter
    47
    Beiträge
    2.556
    ...herzlichen Glückwunsch zu so einem ersten Posting - gib doch einfach mal den Begriff "PCF8574" in der Suche ein und schaue, was dann passiert !

    ...dennoch - wilkommen im Forum !
    Danke an Alle, die uns bei der erfolgreichen 1.000€-Aktion der IngDiba unterstützt haben! | https://www.hackerspace-bremen.de | http://www.pixelklecks.de |

  3. #3
    Hi,
    Jup, dort findet sich aber nicht das was ich Suche

  4. #4
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    09.05.2007
    Beiträge
    202
    Hallo,

    ganz einfach:
    Code:
    I2csend Slave , Variable , 1
    Slave ist die Hardwareadresse und Variable ist eine Bytewert (der dann an den Ausgängen anliegt). Die Bits in "Variable" musst du einfach dementsprechend setzen, welchen PIN du ein- oder ausschalten willst.
    Gruß, Stefan

  5. #5
    Hallo,
    Mein code sieht gerade so aus:
    Code:
    $regfile = "M32def.dat"
    $crystal = 4000000
    $baud = 9600
    
    Config Scl = Portc.0
    Config Sda = Portc.1
    
    
    Dim Variable As Bit
    
    
    I2csend Slave , Variable , 1
    
    
    
    End
    Irgendwas ist daran falsch, beim Compilieren kommt schon ein fehler, ich vermute mal das ich das nicht ganz verstanden habe, was du meinst.

    Gruß Maus

  6. #6
    Erfahrener Benutzer Fleißiges Mitglied Avatar von mycroc
    Registriert seit
    29.11.2006
    Ort
    Bochum
    Beiträge
    111
    wenn ich die Forum Suche benutze finde ich 53 ergebnise zum "PCF8574" im forum "Basic Programmierung (Bascom Compiler)". Ich kann mir nicht vorstellen das da nichts zu findne ist. Auf jeden fall wirst du aber hier http://www.roboternetz.de/wissen/ind...com_I2C_Master antworten findne

  7. #7
    Erfahrener Benutzer Robotik Einstein Avatar von Jaecko
    Registriert seit
    16.10.2006
    Ort
    Lkr. Rottal/Inn
    Alter
    35
    Beiträge
    1.987
    Der Fehler an dem Code dürfte sein, dass "Variable" in Bit und kein Byte ist.
    #ifndef MfG
    #define MfG

  8. #8
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    09.05.2007
    Beiträge
    202
    Hallo,

    genau. Variable muss als Byte definiert sein. Und Slave musst du auch irgendwo festlegen.
    Gruß, Stefan

  9. #9
    Hallo,
    Vielen Dank für deine Hilfe, aber was ich auch nicht verstehe ist das mit den Adresse. Mein Problem ist halt ich finde keine wirkliche Beschreibung dazu.

    Über aufklärung würde ich mich freuen.

    Gruß Maus

  10. #10
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    09.05.2007
    Beiträge
    202
    Hallo,

    dann hast du nicht richtig gesucht! Die Adresse wird als erstes Byte nach der Startsequenz übergeben. Der PCF hat die feste Adresse &B0100, gefolgt von der Subadresse, welche du über die Adresspins A0 bis A2 festlegst. Danach kommt das Lese/Schreibbit. Wenn du den angegebenen Bascom-Hochbefehl nimmst, kannst du das Lese/Schreibbit auf 0 lassen. Diese 8 Bits ergeben somit genau ein Byte.

    Du kannst übrigens auch schreiben:
    Code:
    I2cstart
    I2cwbyte Slave
    I2cwbyte Variable
    I2cstop
    Das bewirkt das gleiche wie I2csend slave, variable, 1.

    PS: Hast du das Datenblatt zum Baustein schon gelesen? Vermutlich nicht Solltest du aber dringend nachholen.
    Gruß, Stefan

Berechtigungen

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