DISABLE/de

From MCS Wiki AVR
Jump to: navigation, search

Contents

Funktion

Sperrt den angegebenen Interrupt.

 

 

Syntax

DISABLE interrupt [device]

 

 

Anmerkungen

Interrupt

Beschreibung

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

TIMER1 OUTPUT COMPARE A Interrupt

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

Sperrt URXC, UDRE und UTXC

ACI

Analog comparator Interrupt

ADC

Analog/Digital Converter Interrupt

 

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

Um ALLE Interrupts zu sperren geben Sie INTERRUPTS an.

 

Um das Freigeben und Sperren einzelner Interrupts zu ermöglichen geben Sie ENABLE INTERRUPTS an.

Das ENABLE INTERRUPTS funktioniert wie ein Hauptschalter. Es muss enabled/gesetzt sein um das Funktionieren einzelner Interrupts zu ermöglichen.

 

Es ist anhängig vom Mikrocontroller welche Interrupts verfügbar sind. Die verfügbaren Interrupts werden automatisch im BASCOM-Editor angezeigt.

 

 

Notice.jpg
 Um JTAG zu sperren kann man DISABLED JTAG schreiben. JTAG ist kein Interrupt sondern ein Device.

 

 

Siehe auch

ENABLE

 

 

Beispiel


'-----------------------------------------------------------------------------------------
'name : serint.bas
'copyright : (c) 1995-2005, MCS Electronics
'purpose : serial interrupt example for AVR
'micro : 90S8535
'suited for demo : yes
'commercial addon needed : no
'-----------------------------------------------------------------------------------------
 
$regfile = "8535def.dat" ' Mikrocontroller
$crystal = 4000000 ' Taktfrequenz
$baud = 19200 ' Baudrate
$hwstack = 32 ' default use 32 for the hardware stack
$swstack = 10 ' default use 10 for the SW stack
$framesize = 40 ' default use 40 for the frame space
 
Const Cmaxchar = 20 'Anzahl Zeichen
 
Dim B As Bit 'Ein Flag zum Signalisieren eines empfangenen Zeichens
Dim Bc As Byte 'Byte Zähler
Dim Buf As String * Cmaxchar 'serieller Puffer
Dim D As Byte
 
'Buf = Space(20)
'Entkommentieren Sie die Zeile oben für die MID() Funktion in der ISR
'Wir müssen den Puffer mit Leerzeichen füllen weil er sonst Unsinn enthält.
 
Print "Start"
 
On Urxc Rec_isr 'Definieren der Serial Receive ISR
Enable Urxc 'Freigeben des Receive Interrupts
 
 
 
Enable Interrupts 'Freigeben ALLER Interrupts 
 
Do
If B = 1 Then 'Es wurde etwas empfangen
 Disable Serial
 Print Buf 'Puffer ausgeben
 Print Bc 'Zeichenzähler ausgeben
 
 
 'Prüfen ob Puffer voll
 If Bc = Cmaxchar Then 'Puffer voll
 Buf = "" 'Löschen
 Bc = 0 'Zeichenzähler zurücksetzen
 End If
 
 Reset B 'Receive Flag zurücksetzen
 Enable Serial
End If
Loop
 
Rec_isr:
Print "*"
If Bc < Cmaxchar Then 'Passt es in den Puffer?
 Incr Bc 'Puffer-Zähler erhöhen
 
 
 If Udr = 13 Then ' Return?
 Buf = Buf + Chr(0)
 Bc = Cmaxchar
 Else
 Buf = Buf + Chr(udr) 'Zum Puffer hinzufügen
 End If
 
 
 ' Mid(buf , Bc , 1) = Udr
 'Entkommentieren Sie die Zeile oben und setzen Sie die Zeile mit Chr() als Kommentar um das Zeichen
 'an eine bestimmte Position zu plazieren.
 'B = 1 'set flag
End If
B = 1 'Flag setzen
Return

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