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.
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] Naturlich nicht vergessen das Datenblatt fur dein Arduino CPU ein zu lesen in Sache der I2C/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
Lesezeichen