PDA

View Full Version : Hàm ngắt báo lỗi


CanhChimMa
04-06-2010, 03:19 AM
Đoạn vào ngắt và ra ngắt này em copy của anh falleaf dungf cho P16F628A, nhưng luôn báo lỗi =.=. Các anh xem giùm xem cần chỉnh sửa chỗ nào. Mỗi lệnh ấy có ý nghĩa gì vậy ạ?


;Doan ma bat buoc de vao ngat
;-------------------------------------------

Interrupt
MOVWF W_SAVE ;W_SAVE(bank unknown!) = W [Báo lỗi]

SWAPF STATUS, W
CLRF STATUS ; force bank 0 for remainder of handler [Báo lỗi]
MOVWF STAT_SV ; STAT_SV = swap_nibbles( STATUS ) [Báo lỗi]
; STATUS = 0
MOVF PCLATH, W ;[Báo lỗi]
MOVWF PCH_SV ; PCH_SV = PCLATH [Báo lỗi]
CLRF PCLATH ; PCLATH = 0
MOVF FSR, W ;[Báo lỗi]
MOVWF FSR_SV ; FSR_SV = FSR [Báo lỗi]
; 10 cycles from interrupt to here!
;-----------------------------------
;Doan chuong trinh ngat
;-----------------------------------

; cac ban se viet chuong trinh ngat o day

;--------------------------------------------------
;Doan ma bat buoc de ket thuc ngat
;--------------------------------------------------

MOVF FSR_SV, W ;[Báo lỗi]
MOVWF FSR ; FSR = FSR_SV
MOVF PCH_SV, W ;[Báo lỗi]
MOVWF PCLATH ; PCLATH = PCH_SV
SWAPF STAT_SV, W ;[Báo lỗi]
MOVWF STATUS ; STATUS = swap_nibbles( STAT_SV ) [Báo lỗi]
SWAPF W_SAVE, F ;[Báo lỗi]
SWAPF W_SAVE, W ; W = swap(swap( W_SAVE )) (no change Z bit)[Báo lỗi]

BSF INTCON, GIE
RETFIE

Thanks rất nhiều.

ductantruong
22-12-2010, 10:04 AM
mình viết cũng bị báo lỗi,không biết sao nữa!