Forum: Compiler & IDEs I2C Master sendet Bit während SCL Low (Warteschleife versagt)


von Michael D. (etzen_michi)


Angehängte Dateien:

Lesenswert?

Guten Tag.


Ich habe hier ein Problem das mein I2C Master irgendwie rumspinnt (Siehe 
Bilder).


Auf dem ersten Bild ist ein DS1629 über den I2C angeschlossen und gibt 
mir auch die gewünschten Daten.

Auf dem zweiten habe ich einen ATmega8 mit einem I2C über das TwoWire 
angeschlossen, welcher nur bestätigt und wenn er was senden soll 0x30 
sendet.

Das Bit wo der Fehler auftritt ist das erste Bit des 0xAA Byte (Zweiter 
Befehl).


Gewartet werden soll über:

while (PINC1!=1) { }


PINC0 ist SDA und PINC1 ist SCL.

Ich habe die PORT`s dauerhaft auf 0 und ziehe wenn benötigt über das DDR 
auf Low.

von holger (Gast)


Lesenswert?

>while (PINC1!=1) { }

PINC1 ist immer 1 weil eine Konstante;)

von Karl H. (kbuchegg)


Lesenswert?

Hier nochmal

int  I2CGetAck() {
     int Ack;
     DDRC=0x02;
     _delay_us(3);
     DDRC=0x00;
     Ack=PINC0;

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.