Endlich! Ich habe so lange nach einer Assembler-Umsetzung für einen Software-TWI Slave gesucht. Vielen Dank an talentraspel_kai!

Nun aber das Problem:

Ich habe den (ASM-) Code zum Testen mal so modifiziert, dass er das empfangene Byte nicht auf PortB gibt, sondern es um eins erhöht und dann auf Abfrage zurückschickt.
Benutzter AVR bei mir ist Tiny2313. Pins und Interruptvektoren sind kompatibel zum AT90S2313.
Leider funktionierte aber irgendwie garnichts. Nach längerem Suchen habe ich herausgefunden, dass der Slave die eigene Adresse nicht erkennt und somit kein ACK sendet.
Ich habe zunächst an einen Denkfehler meinerseits gedacht und den Master mal alle Adressen durchprobieren lassen, aber der Slave hat auf keine(!) reagiert. Am Code des Masters dürfte es aber nicht liegen. (TWI funktioniert einwandfrei z.B. mit Ultraschallsensor SRF0
Also einfach mal im Slave die Adressabfrage so umgestrickt, dass er sich immer angesprochen fühlt. Und plötzlich funktionierte es.

Das ist zwar soweit ganz schön, mein Problem ist jetzt nur, dass ich nicht wirklich weiß, wie ich die Adresserkennung wieder so hinkriege, dass er nur auf seine eigene Adresse reagiert. Ist irgendwie unhöflich, sich im Bus ungefragt in die Gespräche anderer Leute einzumischen :- (

Hat schon jemand dasselbe Problem gehabt und nun zufällig eine Lösung parat?

Vielen Dank
Briegel