Hallo, im Datenblatt zum Mega8 steht das Bit6 (INTF0) im GIFR Regsister gesetzt wird wenn ein INterrupt an INT0 erkannt wurde. D.h. im Register steht dann eine "1" ? Weiter steht im Datenblatt: "... the flag can be cleared by writing a logical one to it" Weshalb wird das Flag mit einer "1" zurück gesetzt, wenn doch eine "1" bedeutet das ein Interrupt erkannt wurde? Ich hätte gedacht das Zurücksetzen erfolgt mit einer "0" ? Schonmal vielen Dank, dani
Weil man für diese Register einen Mechanmismus benötigt, mit dem man gezielt ein einzelnes Bit in lediglich einem Taktzyklus löschen kann ohne die anderen Bits zu beeinflussen. Das würde zwar bei Register auch so funktionieren, die in Erreichbarkeit der CBI/SBI Befehle liegen, aber ausserhalb dieses Bereiches nicht mehr. Dort müsste man dann durch einen kompletten Update-Zyklus Register lesen Bit mittels einer UND-Operation löschen Register schreiben durch. Und in dem Fall würde man dann Interrupts-Bits die zwischen dem "Register lesen" und "Register schreiben" von der Hardware gesetzt werden, wieder verlieren.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.