View Single Post
Old 23-12-2007, 10:23 AM   #5
Jerry
Đệ tử 5 túi
 
Jerry's Avatar
 
Tham gia ngày: Sep 2006
Bài gửi: 101
:
Đoạn code phục vụ ngắt bạn thử làm như sau:
Code:
            BTFSS	PIR1,TMR1IF
            GOTO	exit_int
            BCF	PIR1,TMR1IF

	CLRF	   TMR1L
	CLRF	   TMR1H
	MOVLW	0XC3
	MOVWF	TMR1H
	MOVLW	 0X50
	MOVWF	TMR1L
	
	DECFSZ	     demtimer1,1
	GOTO	      tiep1
	GOTO	      tiep2
tiep1:
	MOVLW	B'10100110'
	MOVWF	PORTB
	MOVLW	D'20'
	MOVWF	demtimer1
	GOTO	exit_int
tiep2:
	MOVLW	B'11000110'
	MOVWF	PORTB
exit_int
	MOVF		FSR_save,W
	MOVWF		FSR
	MOVF		PCLATH_save
	MOVWF		PCLATH
	SWAPF		STATUS_save,W
	MOVWF		STATUS
	SWAPF		W_save,1
	SWAPF		W_save,0
	RETFIE
Cũng không chắc sửa như thế đã chạy được, nhưng cách viết này nó "chính thống" hơn cách viết của bạn. Việc bạn xoá rồi lại đặt bít TMR1ON trong ngắt không có ý nghĩa gì cả. Vào ngắt bạn phải xoá cờ TMR1IF ngay. Ngoài ra, bạn có thể sử dụng MPLAB Simulator để mô phỏng và tìm lỗi.
Jerry vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn