
Zitat von
oderlachs
Code aus dem Web zu haben, aus einem funktionierenden Beispiel und auch das es meine erste
I2C Anwendung ist
Such' Dir gescheiten Code, denn der ist Müll. Ein Auszug
Code:
void i2c_start()
...
ddr_scl_hi;
...
scl_hi;
Hier wird der Pin zu SCL aktiv getrieben, also auf Ausgang & High gesetzt. Bei I2C wird per Standard dagegen nur auf Low gezogen, das High wird durch Pullups erzeugt, das erlaubt dann den Bausteinen Clock-Stretching, bei dem der Slave den Clock verlängert. Kannst Dir dann vorstellen, was passiert, wenn der Slave auf Low zieht und der Master aktiv High treibt.
Warum nimmst Du nicht die Hardware I2C Unit, die der ATM168 ja hat und baust mit 'ner Software I2C rum?
aus einem funktionierenden Beispiel
Hat das Beispiel bei Dir funktioniert, oder wird dem Beispiel nur nachgesagt, dass es funktioniert?
Ist die Hardware in Ordnung?
Lesezeichen