DISABLE/de
Inhaltsverzeichnis |
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.
Um JTAG zu sperren kann man DISABLED JTAG schreiben. JTAG ist kein Interrupt sondern ein Device.
Siehe auch
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 |
---|