ENABLE/de

From MCS Wiki AVR
Jump to: navigation, search

Contents

Funktion

Freigeben des angegebenen Interrupts.

 

 

Syntax

ENABLE interrupt [, prio]

 

 

Anmerkungen

Interrupt

Description

INT0

Externer Interrupt 0

INT1

Externer Interrupt 1

OVF0,TIMER0, COUNTER0

TIMER0 Überlauf Interrupt

OVF1,TIMER1,

 

COUNTER1

TIMER1 Überlauf Interrupt

CAPTURE1, ICP1

INPUT CAPTURE TIMER1 Interrupt

COMPARE1A,OC1A oder

 

COMPARE1, OC1

TIMER1 OUTPUT COMPARE A Interrupt

 


Wenn nur ein Compare Interrupt vorhanden.

COMPARE1B,OC1B

TIMER1 OUTPUT COMPARE B Interrupt

SPI

SPI Interrupt

URXC

Serial RX complete Interrupt

UDRE

Serial data register empty Interrupt

UTXC

Serial TX complete Interrupt

SERIAL

Disabled URXC, UDRE and UTXC

ACI

Analog-Comparator Interrupt

ADC

Analog/Digital Converter Interrupt



Nur XMEGA


prio

Priorität, die dem Interrupt zugewiesen werden soll.

Geben Sie Lo, Hi oder Med an.

Beim Xmega muss man die Priorität eines Interrupts angeben. Lo=Low priority. Hi=High priority und Med=Medium priority.

Wenn man keine Priorität angibt wird MED benutzt.

 

Standardmäßig sind alle Interrupts disabled (gesperrt).

Der Schalter für ALLE Interrupts ist standardmäßig ebenfalls disabled (gesperrt).

Wenn ein Interrupt freigegeben wird dann löst er nur aus wenn der Schalter für ALLE Interrupts freigegeben ist.

Freigeben des Schalters für ALLE Interrupts mit ENABLE INTERRUPTS.

Sperren mit DISABLE INTERRUPTS.

 

Wenn ein Interrupt ausgeführt wird dann wird der Schalter für ALLE Interrupts automatisch hardwaremäßig gesperrt.

Dadurch wird verhindert, dass andere Interrupts stattfinden.

Wenn die Interrupt Service Routine beendet wird dann wird der Schalter für ALLE Interrupts wieder freigegeben so dass neue Interrupts stattfinden können.

 

Es ist abhängig vom Mikrocontroller wieviele Interrupts vorhanden sind. Wenn man im BASCOM-Editor ENABLE eingibt dann erscheint ein Popup-Fenster mit einer Liste der vorhandenen Interrupts.

 

XMEGA

Bei normalen AVR Mikrocontrollern ergibt sich die Priorität der Interrupts aus der Interrupt-Adresse. Je niedriger die Adresse ist desto höher ist die Priorität.

In der DAT-Datei findet man eine Liste der Interrupts und deren Adressen.

Beispiel aus einer m1280def.dat Datei:

 

 

[INTLIST]

count=56

INTname1=INT0,$002,EIMSK.INT0,EIFR.INTF0

INTname2=INT1,$004,EIMSK.INT1,EIFR.INTF1

INTname3=INT2,$006,EIMSK.INT2,EIFR.INTF2

INTname4=INT3,$008,EIMSK.INT3,EIFR.INTF3

INTname5=INT4,$00a,EIMSK.INT4,EIFR.INTF4

INTname6=INT5,$00c,EIMSK.INT5,EIFR.INTF5

 

INT0 hat die höchste Priorität weil er die niedrigste Adresse (Adresse 2) hat.

 

Der XMEGA hat ein Prioritäten-System. Man kann einen Interrupt als low, medium oder high priority festlegen.

Man MUSS diese Prioritäten mit  CONFIG PRIORITY festlegen.

Wenn man LO oder MED Priority benutzt dann muss das enabled werden.

 

 

Siehe auch

DISABLE , ON , CONFIG PRIORITY

 

 

Beispiel (Codeausschnitt)


Enable Interrupts 'Freigabe ALLER Interrupts
Enable Timer1 'Gibt den TIMER1-Interrupt frei

Languages   English Deutsch  
Personal tools
Namespaces
Variants
Actions
Navigation
In other languages
Language