PIC452外部中斷進(jìn)不去的原因?
開(kāi)了兩個(gè)中斷,一個(gè)定時(shí),另一個(gè)為外部中斷,
void TIMER0INIT()
{
T0CON=0B10001000;//1000 0011,PSA=0,分頻16;
TMR0L=0xDC;
TMR0H=0x0B;
//INTCON=0B10100000;//GIE=1;TMR0IE=1;TMR0IF=0;(=1須軟件清零)這里有兩種方式都對(duì)的。
GIE=1;
TMR0IF=0;
TMR0IE=1;
}
但是,打開(kāi)另外一個(gè)中斷時(shí),為了模塊化編程,一般另外建一個(gè)函數(shù)進(jìn)行外部中斷初始化,然而如果采用寄存器字節(jié)形式,編寫(xiě)會(huì)帶來(lái)很大麻煩,不能正常中斷。采用位的形式設(shè)置中斷,為比較好的方式。如下:
void key_init()
{
//初始化中斷
RBIE=0; //(RB7~4具有電平變化中斷功能)RB口電平變化中斷禁止
GIE=1;
INTEDG0=0;//下降沿
INT0IF=0;
INT0IE=1;
}