Forum: Mikrocontroller und Digitale Elektronik PCF8574 an Atmega 168p


von Martin P. (jmasterj)


Angehängte Dateien:

Lesenswert?

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.

von Helfer (Gast)


Lesenswert?

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

von Helfer (Gast)


Lesenswert?

Stopp zurück, das |= ist OK, das zerstört nix.

von jmasterj (Gast)


Lesenswert?

ja die adresse ist auf 0 eingestellt also a0-2 sind auf gnd geführt

von Martin P. (jmasterj)


Lesenswert?

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??

von Martin P. (jmasterj)


Lesenswert?

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

von Falk B. (falk)


Lesenswert?


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
Noch kein Account? Hier anmelden.