- Akku Tests und Balkonkraftwerk Speicher         
Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 11

Thema: Nochmal I2C PCF8574P

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Neuer Benutzer Öfters hier
    Registriert seit
    04.05.2010
    Beiträge
    23

    Nochmal I2C PCF8574P

    Hallo,

    Nochmal mein Problem zu dem IC. Habe die Digital Erweiterung aus dem Asuro Wiki gebaut. Habe nun ein Problem mit dem ablauf...
    Ich habe es so verstanden dass man so mit dem Prgramm anfängt
    #define Portadresse 0x41
    InitI2C();
    StartI2C(); <--Was muss hier für ein Parameter rein, wenn ich die Pins auslesen will???

    ReadI2C(); <---Benötigt man hier einen Parameter?
    StopI2C();

    Laut dem Datenblatt und dieser .pdf Datei http://www.g-heinrichs.de/attiny/I2C...gen_Attiny.pdf ist doch die Leseadresse 0x41, oder?

    auch wenn ich z.B. das prog von marvin im asuro wik "ifür die aktuelle asuro bibliothek" "maken" will, bringt er einen fehler: "I2C_WRITE"
    Den Befehl will er nicht kennen...

    Habe es auch mal mit der i2cmaster lib versucht, aber da werden auch fehlermeldungen gebracht...?!


    Cruser12

  2. #2
    Neuer Benutzer Öfters hier
    Registriert seit
    04.05.2010
    Beiträge
    23
    ich poste mal ein prog für eine Write funktion

    normal müssten doch die letzten drei Pins 5V rausbringen und der Rest 0V. Wenn ich jedoch mit dem DMM nachmesse sind da immer 5V.
    Kann BITTE ENDLICH jmd. helfen?
    danke

    Code:
    #include "i2c.h"
    #include "asuro.h"
    
    #define Dev8574 0x40 
    
    int main(void)
    {
      Init();                                    
      InitI2C();                                
      
      while(1)
      {        
    	StartI2C(Dev8574);
    	WriteI2C(0b00000111);
    	StopI2C();                       
    	StatusLED(GREEN);
      }
      return 0;
    }

  3. #3
    Erfahrener Benutzer Robotik Einstein Avatar von Jaecko
    Registriert seit
    16.10.2006
    Ort
    Lkr. Rottal/Inn
    Alter
    41
    Beiträge
    2.009
    Ich kenn jetzt die i2c.c und i2c.h nicht. Wird da irgendwo die Busfrequenz
    vorgegeben? Die fehlt mir hier.

    Hier:
    http://www.mikrocontroller.net/mc-pr...20Beispiel.zip
    gibts nen Beispielcode für den PCF8574.

    Wie sieht die Hardware aus? Sind die Pullups für SCL und SDA vorhanden?
    #ifndef MfG
    #define MfG

  4. #4
    Moderator Robotik Einstein Avatar von damaltor
    Registriert seit
    28.09.2006
    Ort
    Milda
    Alter
    37
    Beiträge
    4.063
    Die Busfrequenz ist in dieser Library auf 100 khz festgelegt.

    deine befehle kennt er nicht, weil groß- und kleinschreibung in C wichtig ist.

    beschäftige dich mal mit der dokumentation von peter fleurys i2c-library, siehe dazu: http://jump.to/fleury
    dort siehst du, wie du auf einen i2c-baustein schreibend und lesend zugreifen kannst. auch beispielprogramme solltest du dort finden.
    Read... or die.
    ff.mud.de:7600
    Bild hier  

  5. #5
    Neuer Benutzer Öfters hier
    Registriert seit
    04.05.2010
    Beiträge
    23
    danke das mal jmd. was schreibt
    @Jaecko: Ich hab Pullups mit 4,7K. müsste eigtl. reichen

    @damaltor: was meinst du damit, dass er meine befehle nicht kennt?
    im asuro Wiki steht doch, dass man die i2c.c und i2c.h nehmen kann
    was für eine lib bräuchte man dann?

    Wie gesagt, ich wollte das prog von marvin aus dem asuro Wiki compilieren, hat aber dann diesen error gebracht:
    make: *** No rule to make target `test.hex', needed by `all'. Stop.

    Noch ne Frage:
    in dieser lib steht was von NAK und ACK. Was ist der Unterschied?

    Cruser12

  6. #6
    Moderator Robotik Einstein Avatar von damaltor
    Registriert seit
    28.09.2006
    Ort
    Milda
    Alter
    37
    Beiträge
    4.063
    die fehlermeldung "no rule to make.." bedeutet, dass im eine datei, das makefile, felt oder dass du den aufruf falsc gestaltet hast. du solltest nur "make test" tippen, nicht "make test.hex".
    Read... or die.
    ff.mud.de:7600
    Bild hier  

  7. #7
    Neuer Benutzer Öfters hier
    Registriert seit
    04.05.2010
    Beiträge
    23
    ok, der error ist weg! habe anstatt i2cmaster.s, i2cmaster.c eingetippt. da kann der ja lang suchen.

    Jetzt gibt es aber einen neuen error...

    avr-gcc -c -mmcu=atmega8 -DF_CPU=8000000UL -I. -g -Os -I../../lib/inc -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -Wall -Wstrict-prototypes -Wa,-ahlms=test.lst test.c -o test.o
    test.c: In function 'main':
    test.c:18: warning: pointer targets in passing argument 1 of 'SerWrite' differ in signedness
    test.c:19: warning: pointer targets in passing argument 1 of 'SerWrite' differ in signedness
    avr-gcc -c -mmcu=atmega8 -DF_CPU=8000000UL -I. -g -Os -I../../lib/inc -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -Wall -Wstrict-prototypes -Wa,-ahlms=../../lib/asuro.lst ../../lib/asuro.c -o asuro.o
    avr-gcc -mmcu=atmega8 -DF_CPU=8000000UL -I. -g -Os -I../../lib/inc -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -Wall -Wstrict-prototypes -Wa,-ahlms=test.o test.o asuro.o i2cmaster.s --output test.elf -Wl,-Map=test.map,--cref -L../../lib -lm -lasuro
    avr-gcc: i2cmaster.s: No such file or directory
    make: *** [test.elf] Error 1

    was heißt das?

  8. #8
    Neuer Benutzer Öfters hier
    Registriert seit
    04.05.2010
    Beiträge
    23
    ich hab die i2cmaster.s in die lib reinkopiert..
    oder ist das falsch?

  9. #9
    Neuer Benutzer Öfters hier
    Registriert seit
    04.05.2010
    Beiträge
    23
    hab gerade in der doku von der i2cmaster lib gelesen, dass man das .S groß schreibt
    jetzt mach ich mich da mal ran...

  10. #10
    Neuer Benutzer Öfters hier
    Registriert seit
    04.05.2010
    Beiträge
    23
    perfekt
    Das erste Programm steht. Werde mir morgen ein kleines Lauflicht basteln und noch ein paar taster dranhängen.

    ich hab gelesen, dass man write und read nie gleichzeitig nutzen kann...
    reicht es wenn ich dazwischen eine stop funktion einfüge, oder funktioniert dass nicht?

    noch was: wenn ich den interrupt benutzen will, wo muss ich den anschließen??

    Danke

Seite 1 von 2 12 LetzteLetzte

Berechtigungen

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

Labornetzteil AliExpress