Dein TWBR Formel stimmt auch nicht denke ich. Dein Arduino CPU Takt ist doch nicht 1600 Hz oder?
Wie langsam möchtest du ihn haben denn?
Das folgende habe ich in dem datei Arduino\libraries\Wire\utility\twi.c gefunden unter den Funktion void twi_init(void)
(Zeile 79) Das ist jedenfalls die Standard-einstellung.
[EDIT] Naturlich nicht vergessen das Datenblatt fur dein Arduino CPU ein zu lesen in Sache der I2C/TWI.Code:... // initialize twi prescaler and bit rate cbi(TWSR, TWPS0); cbi(TWSR, TWPS1); TWBR = ((F_CPU / TWI_FREQ) - 16) / 2; /* twi bit rate formula from atmega128 manual pg 204 SCL Frequency = CPU Clock Frequency / (16 + (2 * TWBR)) note: TWBR should be 10 or higher for master mode It is 72 for a 16mhz Wiring board with 100kHz TWI */ ...
[EDIT 2] Hier ist ein Arduino link mit tiefere Information wie es den TWI/I2C stelle betreibt.
http://playground.arduino.cc/Main/Wi...e#.UzoDOD62GvR





Zitieren
Anscheinend passt dann doch alles. Hab leider kein Oszi zur hand . Gruß



Lesezeichen