Ich studiere TWI von Atmel ATMega und der Beispielcode Bug mich. Es heißt, dass die Interrupt-Flag TWINT durch das Schreiben einer logischen Eins, um es gelöscht werden müssen, so nehme ich an, dass es wie dies in C ist START-Bedingung es soWas ist der Unterschied zwischen dem Setzen eines Bits und dem Schreiben von Logik Eins auf ein Bit?
TWCR = (1<<TWINT)|(1<<TWSTA|(1<<TWEN)
ist
TWCR |= (1<<TWINT)|(1<<TWSTA)|(1<<TWEN)
jedoch im Beispielcode zu senden
es wird auch gesagt, in der Atmel-Seite, dass TWCR |=(1<<TWINT)
falscher Weg ist Interrupt-Flag löschen http://www.atmel.com/webdoc/AVRLibcReferenceManual/FAQ_1faq_intbits.html so was ein wenig und das Schreiben auf ein Bit zwischen Einstellung es anders zu machen, da es falsch ist, TWCR |=(1<<TWINT)
Ich verwende das Datenblatt des Atmel 2549 8-Bit Mikrocontrollers. Der Beispielcode ist aus Abschnitt 24.6
Das ist eine gute Frage. Es ergibt sich aus dem "write 1 clear" Verhalten bestimmter Arten von Hardware-Registern, was in der Welt der Hardware-Schnittstellen recht häufig vorkommt, kann aber eine ungewohnte Überraschung für diejenigen sein, die aus einem eher alltäglichen Software-Hintergrund kommen. Bitte beachten Sie dieses Detail, bevor Sie zu der Frage abstimmen. –