Hast du schon versucht das Ergebnis vorher zusammenzusetzten und dieses dann gesamt an die Funktion zu übergeben?
Also in etwa so :
Was du auch testen kannst wäre einen fixen wert zu übergeben (und schauen ob sich etwas verbessert)Code:unsigned char ergebnis = data1 + data2 + ... + data8 I2c_start ... ... ... i2c_write(ergebnis) I2c_stop
Ein weiterer test wäre nicht mit addition sondern mit schieben (ergebnis = (data1<<0) | (data1<<1) | ... | (data8<<7) ).
In dataX steht dann eine 0 oder 1 je nachdem ob der Eingang low oder high ist.
MfG Hannes







Zitieren

Lesezeichen