Hat jemand eine Erklärung für dieses unerwartete Verhalten? Kann das eine Störung sein, die man am Oszi nicht sieht? Oder ist das ein bekannter Fehler mit dem Stop-Condition Bit (USIPF) im USISR (USI Status Register?
Ich habe hier einen USI slave seit paar Monaten auf einem Tiny24 laufen, ich prüfe auch den USIPF, kann aber keine Probleme feststellen.
Der Slave rennt um sein Leben 
Hier mal mein USI_STRaddr Interrupt:
Code:
usi_start:
in sregret,SREG
in tmpi1,USISR
ldi USI_TWI_OVERFLOW_STATUS,USI_SLAVE_CHECK_ADDRESS
cbi USI_DDR,USI_SDA
usi_start1:
sbrc tmpi1,USIPF
rjmp usistart2
sbic USI_PIN,USI_SCL
rjmp usi_start1
usistart2:
ldi tmpi1,(1<<USISIE)|(1<<USIOIE)|(1<<USIWM1)|(1<<USIWM0)|(1<<USICS1)
out USICR,tmpi1
ldi tmpi1,(1<<USISIF)|(1<<USIOIF)|(1<<USIPF)|(1<<USIDC)
out USISR,tmpi1
out SREG,sregret
reti
Gruß Sebastian
P.S. Achso, als Master habe ich bis jetzt Hardware Twi von m8 m16 und m128 gehabt.
Lesezeichen