Chào mọi người!
Em có đoạn khai báo ngắt timer1 như sau trong chương trình đồ án của mình:
Trong chương trình phục vụ ngắt ở 0004h. Em có viết đoạn chương trình sau :
Đoạn chương trình trên em viết hơi "loằng ngoằng", chỉ để chứng tỏ một điều rằng : ngắt timer1 ở trên chỉ xảy ra có một lần, nghĩa là đoạn kích timer1 chạy lại trong chương trình phục vụ ngắt không hoạt động.
Cũng chương trình trên, em copy ra thành một chương trình riêng biệt thì chạy tốt.
Em không biết có những yếu tố nào làm cho việc kích khởi timer1 hoạt động lại trong chương trình phục vụ ngắt "không bao giờ" hoạt động được.
Rất mong được sự hướng dẫn as soon as possible của mọi người.
Chân thành cảm ơn.
D.
À quên, biến demtimer1 em đã khai báo trước bằng 20
Em có đoạn khai báo ngắt timer1 như sau trong chương trình đồ án của mình:
Code:
CLRF T1CON CLRF INTCON CLRF TMR1H CLRF TMR1L BSF STATUS,RP0 CLRF PIE1 BSF PIE1,TMR1IE BCF STATUS,RP0 CLRF PIR1 MOVLW 0X00 MOVWF T1CON MOVLW 0XC3 MOVWF TMR1H MOVLW 0X50 MOVWF TMR1L BSF T1CON,TMR1ON BSF INTCON,TMR1IE BSF INTCON,PEIE BSF INTCON,GIE
Code:
BTFSS PIR1,TMR1IF GOTO exit_int BCF T1CON,TMR1ON CLRF TMR1L CLRF TMR1H MOVLW 0XC3 MOVWF TMR1H MOVLW 0X50 MOVWF TMR1L BSF T1CON,TMR1ON BCF PIR1,TMR1IF 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 chương trình trên, em copy ra thành một chương trình riêng biệt thì chạy tốt.
Em không biết có những yếu tố nào làm cho việc kích khởi timer1 hoạt động lại trong chương trình phục vụ ngắt "không bao giờ" hoạt động được.
Rất mong được sự hướng dẫn as soon as possible của mọi người.
Chân thành cảm ơn.
D.
À quên, biến demtimer1 em đã khai báo trước bằng 20
Comment