Gast
#180297
Ich hab mir mal gedacht, nutze die Sache, die mich beim AVR immer ärgert (setze 1 damits 0 wird) und schon falle ich auf die Nase. Wenn ich eine Zuweisung teste, müßte doch eine Kopie der Zuweisung ausgewertet werden ? Aber der Compiler liest das GIFR nochmal ein, was natürlich in die Hose geht. Hier mal der Code: if( PIND & 1<<PD2 || (GIFR &= 1<<INTF0) ){ // check hanging on SDA low b2a: 82 99 sbic 0x10, 2 ; 16 b2c: 06 c0 rjmp .+12 ; 0xb3a b2e: 8a b7 in r24, 0x3a ; 58 b30: 80 74 andi r24, 0x40 ; 64 b32: 8a bf out 0x3a, r24 ; 58 b34: 8a b7 in r24, 0x3a ; 58 b36: 88 23 and r24, r24 b38: 29 f0 breq .+10 ; 0xb44 Timeout_sda = time; Mit anderen Worten, man kann nicht eine Zuweisung testen, wenn das Register nicht 100% identisch rücklesbar ist. Peter