PICBASIC assembler afbryde behandlingen?

N

nebisman

Guest
Hej venner:Kan nogen vise mig et komplet eksempel på samlevirksomhed niveau afbryder behandlingen i PIC BASIC PRO.(Det ville være dejligt, hvis eksempel var med USART RX afbryde, men enhver eksempel er meget taknemmelig)

tak på forhånd
Nebisman

 
tage et kig på:
http://www.melabs.com/resources/samples.htm
Der er flere eksempler på koder omkring pbp ... herunder brugen af afbrydelse i ASM gennemførelse.

 
»Interrupts i assembler
'Slå LED tændt.Interrupt om PORTB.0 (INTE) vender LED slukket.
»Program venter ,5 sekunder og vender LED igen.

ledede var PORTB.7

wsave var byte 20 dollar system
»wsave1 var byte $ a0 system 'Nødvendigt for enheder med RAM i bank1
»wsave2 var byte 120 dollar system 'Nødvendigt for enheder med RAM i bank2
»wsave3 var byte $ 1a0 system 'Nødvendigt for enheder med RAM i bank3
ssave var byte bank0 system
psave var byte bank0 systemGoto start "Gå rundt interrupt handler

»Definer interrupt handler
define INTHAND Myint

»Assembly sprog interrupt handler
ASM

; Gem W, status og PCLATH registre, hvis det ikke gjort tidligere
Myint movwf wsave
swapf STATUS, W
clrf STATUS
movwf ssave
movf PCLATH, W
movwf psave

; Indsæt afbryde kode her
; Gem og genoprette FSR og andre registre, der anvendes

BCF _led; Hvis afbryder, slukker LED
BCF INTCON, 1; Ryd interrupt flag

; Gendan gemt registre
movf psave, W
movwf PCLATH
swapf ssave, W
movwf STATUS
swapf wsave, F
swapf wsave, W

retfie; Retur fra afbryde

endasmstart: TRISB = $ 7f 'LED ud, resten i
OPTION_REG = $ 7f 'Aktiver PORTB pullups

INTCON = $ 90 'Aktiver INTE afbryder

førte = 1 'Slå LED på

loop: Hvis førte = 1 Så loop 'Vent her mens LED er stadig på
»Hvis vi får her, LED er slukket
Pause 500 'Vent ,5 sekunder
Goto start "Start forfra (igen ført tilbage til)

 

Welcome to EDABoard.com

Sponsor

Back
Top