Register GIFR mit ATMEGA2560 ...RC5 Code geht nicht
Hallo
ich habe gerade versucht den code aus der Bascom Hilfe für den RC5 Empfang auf einem ATMEGA2560 zum laufen zu bekommen.
Leider meckert er mir diese Zeile an :
Code:
Gifr = Gifr Or &H80 'clear Flag Int1
Die Fehlermeldung lautet : Error invalid datatyp ?!
Heißt das Register anders beim ATMEGA2560 ?
Nach meinen recherchen im Internet habe ich dieses hier gefunden was zumindest die Funktion des Registers erklärt.
Zitat:
Und schließlich ist auch noch das Register GIFR (General Interrupt Flag Register) beteiligt. In diesem Register werden die Bits INTF0 (Bit 6) bzw. INTF1 (Bit 5) gesetzt, sobald die Bedingung zur Auslösung des betreffenden Interrupts erfüllt ist. Mit dem Anspringen der Interrupt-Routine wird das entsprechende Bit vom AVR automatisch wieder gelöscht. Hier sollte man sich ins Gedächtnis rufen, daß alle Interrupts so lange gesperrt sind, wie eine andere Interrupt-Routine ausgeführt wird. Das Interrupt-Flag speichert die Interrupt-Anforderung zwischen, damit sie nicht verlorengeht. Die Interrupt-Flags lassen sich aber auch softwareseitig löschen, indem man GIFR.INTF0 = 1 bzw. GIFR.INTF1 = 1 schreibt (tatsächlich eine 1 und nicht, wie es logischer wäre eine 0). Das Löschen des Interrupt-Flags unterbindet die Auslösung des anstehenden Interrupts. Die Auswertung dieser Flags kann sinnvoll sein, wenn man sich in einer umfangreicheren Interrupt-Routine befindet und vielleicht effizienter reagieren will.
Im Datenblatt zum ATMEGA2560 findet sich sowas :
Vector Nr. Program Address Source Interrupt Definition
..............|.............|..................... ..|...............................
........3....... $0004.... INT1... External Interrupt Request 1
kann man das irgendwie umbauen oder hat jemand funktionierenden Code für den ATMEGA2560 ?
Danke und Gruß
Steffen