السلام عليكم
أنا بصراحة لا أعرف حاجة في لغة الاسمبلي
وأتمنى من المختصين مساعدتي في اختصار هذا الكود
لأن أظن أن فيه شروحات وهي ليست من صلب البرنامج
DEFINE INTHAND Label
Label is the beginning of your interrupt routine.
PBP will place a jump to this Label at
location 4 in the PICmicro.
' Assembly language interrupt example
led var PORTB.1
wsave var byte $20 system
ssave var byte bank0 system
psave var byte bank0 system
Goto start ' Skip around interrupt handler
‘ Define interrupt handler
define INTHAND myint
‘ Assembly language interrupt handler
asm
; Save W, STATUS and PCLATH registers
myint movwf wsave
swapf STATUS, W
clrf STATUS
movwf ssave
movf PCLATH, W
movwf psave
; Insert interrupt code here
; Save and restore FSR if used
bsf _led; Turn on LED (for example)
; Restore PCLATH, STATUS and W registers
movf psave, W
movwf PCLATH
swapf ssave, W
movwf STATUS
swapf wsave, F
swapf wsave, W
retfie
endasm
‘ PicBasic Pro program starts here
start: Low led ‘ Turn LED off
‘ Enable interrupt on PORTB.0
INTCON = %10010000
loop: Goto loop ‘ Wait here till interrupted
Interrupts
تحياتي
