Gast
#1675731
Hallo zusammen Ich bin gerade dabei die Kommunikation für einen ATTINY 84 zu programmieren. Der ATTINY soll dabei als Slave fungieren. Jetzt habe ich schon einige Beispiele gefunden und den Programmablauf habe ich (denke ich) verstanden. Das Problem. was ich habe ist folgendes: Vom Master (Aardvard I2C/SPI als Master) werden neun bits übertragen (sieben für die Slave-Adresse, eins für die R/W-Operation und das Ack-bit). Nun müßte ich als Slave, wenn die Adresse stimmt, während des Ack-bits die SDA-Leitung auf low ziehen. Und genau da liegt mein Problem. Die ISR für die Startbedingung wird durchlaufen. Ich sehe im Buffer die richtigen Werte für die Slave-Adresse und den R/W-Befehl. Ich schaffe es aber nicht die SDA Leitung auf low zu ziehen, bevor das Ack-bit vom Master gesendet wird. Selbst wenn mein erster Befehl (ausgeführt mit einem Makro) in der ISR für den USI_OVF ist, bin ich zu spät dran. Habe ich da was falsch verstanden, oder mache ich grundsätzlich was falsch?