Zitat Zitat von 021aet04 Beitrag anzeigen
Hast du schon versucht das Ergebnis vorher zusammenzusetzten und dieses dann gesamt an die Funktion zu übergeben?
Also in etwa so :
Code:
unsigned char ergebnis = data1 + data2 + ... + data8
I2c_start
...
...
...
i2c_write(ergebnis)
I2c_stop
Was du auch testen kannst wäre einen fixen wert zu übergeben (und schauen ob sich etwas verbessert)

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
Moin

Das mit dem ergebnis vorher hatte ich auch schon. bewirkt keine änderung.
Was meinst du genau mit schieben ???

grüsse
Patrick

- - - Aktualisiert - - -

Zitat Zitat von shedepe Beitrag anzeigen
Kann die Library denn überhaupt den Hardware I2C des Atmegas nutzen. Wenn ich danach google, dann sieht das stark danach aus als ob die lib Software I2C auf jedem beliebigen Pin machen kann. Da muss man sich natürlich nicht wundern wenn das entsprechend langsam ist.

Als alternative kann ich die lib von Peter Fleury empfehlen: http://homepage.hispeed.ch/peterfleu...-software.html
Geht dann natürlich nur auf den Hardware I2C Pins.
Moin

wie gesagt, ich habe vieles selber erlernt und so geht es ja auch.
ob und was die interne lib kann, weiss ich nicht. ich nutze codevision

interessant wäre, mir vllt mit einem beispiel zu zeigen was du genau meinst.
leider habe ich das so nicht ganz verstanden...

Grüsse
Pat

- - - Aktualisiert - - -

gibt es deine keine lib für den mcp23017 ??
habe nur was für den arduino gefunden