Hi da ich schon einige beiträge hier gelesen habe und ich trotzdem nicht voran komme, mache ich nun nochmal einen eigenen beitrag zu diesem thema auf. da ich neu im bereich i2c-bus bin wollte ich als kleine übung leds über den pcf8574 ansprechen. dafür habe ich mir die pcf8574.c runtergeladen und etwas angepasst. nur leider bekomme ich die leds in keinster weise davon überzeugt anzugehen. ich habe im anhang meinen c-code dafür mit hochgeladen. ich hoffe ihr könnt mir einen tipp geben was ich falsch mache oder wo ein fehler in meinem programm sein könnte.
Frage zur nicht gezeigten Hardware/Schaltung: Adresse (0 im Code) am PCF8574 ist richtig eingestellt ()? In unsigned char pcf8574_send_add_rw (unsigned char address, unsigned char rw) hast du /*übergebene adresse um 1 nach links shiften*/ addr_byte = address << 1; OK. /*setze des RW-bits*/ addr_byte |= rw; OK. /*0b0100xxx0 --> adresse des Expander*/ addr_byte |= 0b01000000; Zerstört dir die beiden vorhergehenden Aktionen
ich habe jetzt rausgefunden, dass das programm bereits be der ersten while-schleife hängen bleibt.also bei /*warten bis die startbedingung gesendet wurde --> ACK*/ while (!(TWCR & (1<<TWINT))); anscheinend sendet der pcf8574 kein ack-signal. nur weiß ich leider nicht warum. ich habe 10kohm pullup widerstände angeschlossen. da das oft die fehlerquelle bei anderen war. nur leider bringt das auch keine verbesserung. kann mir irgend jemand helfen??
alles klar ich weiß zwar nicht warum aber jetzt geht es. sda leitung einmal abgeklemmt und wieder dran gehangen und es geht. trotzdem danke für die hilfe
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.