Hallo! Ich nutze die I2C Slave-Implementierung von Martin Junghans (jtronics) schon einen ganze Weile und die hat mir super Dienste geleistet. Bisher habe ich auch nur immer ein Byte gelesen (ein paar Tasten wurden durch den ATTINY entprellt und dann der Status geliefert) und das ging prima. Nun habe ich das Problem, dass ich nun ein paar Bytes vom Master an den Slave schicken muss und auch mehrere Bytes vom Slave lesen muss.
Alle meine Daten passen sicher in den Sende oder auch Empfangsbuffer des ATTINY, aber ich finde keinen Punkt der mir sagt, wann eine Transaktion abgeschlossen ist, also die übertragenen Daten genutzt werden können. Ich hatte gedacht, dass über die Erkennung der Stopp-Bedingung realisieren zu können, aber die Stopp-Bedingung habe ich nie "gefunden"
1 |
|
2 |
|
3 |
|
4 |
|
5 |
|
6 |
|
7 |
|
8 |
|
9 |
|
10 |
|
11 |
|
12 |
|
13 |
|
14 |
|
15 |
|
16 |
|
17 |
|
18 |
|
19 |
|
20 |
|
Das ist die Codesequenz, in der das passieren müsste, aber in den ELSE-Zweig komme ich nie an.
Hat da jemand schon was gemacht, um das Problem zu lösen? Ich habe auch nach anderen I2C Slave Implementierungen gesucht, aber so was richtig passendes habe ich leider bisher nicht gefunden.
Danke schon mal für Tipps und Grüße Hans-Joachim