0
我最近試圖製作一個程序,使用timer0從255溢出到0,並轉到一個isr代碼,如果T0CKI引腳上的按鈕被按下一次就會變成一個LED,正如我從微芯片公司TIMER0數據表教程,但它不是在所有工作無論我試圖從代碼更改,寫在與XC8編譯MPLAB X IDE,這裏是代碼:PIC16f877a Timer0代碼不起作用
#include "config.h"
void interrupt ISR();
void INIT();
void main(){
INIT();
while(1){
if(PORTAbits.RA4 == 1){
TMR0--;
}
}
}
void interrupt ISR(){
if(INTCONbits.TMR0IF == 1 && INTCONbits.TMR0IE == 1){
TMR0 = 255;
INTCONbits.TMR0IF = 0;
PORTDbits.RD0 = 1;
}else{
PORTDbits.RD0 = 0;
}
}
void INIT(){
INTCON = 0b11100000;
OPTION_REG = 0b11100111;
TRISDbits.TRISD0 = 0;
PORTDbits.RD0 = 0;
TRISAbits.TRISA4 = 1;
TMR0 = 255;
}
這是main.c中,我寫的所有代碼config.h就是我設置配置位的地方,使用Windows-> MPLAB配置位
在此先感謝所有反饋者,非常感謝
您檢查TMR0IE。你在哪裏設置它? – 2014-08-28 10:02:18
它是intcon寄存器中的位5設置爲1 -on- – user3674628 2014-08-28 14:03:16