void Int4_init(void)
{
EXF0 = 0x40; //1下降沿出发 2 上升沿触发
IEN1 |= 1<<6; //EX4
IENC = 0x08; //
}
void Int40Isr(void) interrupt 13
{
uint16 tmp;
EXF1 =0x00;
tmp=TH1;
tmp<<=8;
tmp|=TL1;
tmp>>=6; //8us
if(T1_4ms)
{
tmp+=T1_4ms*500;
T1_4ms=0;
}
/*if(!Int4_flag) //下降沿
{
Int4_flag=1;
EXF0 = 0X02;
}else{ //上升沿
Int4_flag=0;
EXF0 = 0X01;
} */
if(tmp>250)
{
//ppp=1;
}
T1cnt++;
}
完整代码是这样的,用串口将T1cnt的数值输出,在中断端口浮空时,T1cnt不断增加,接到检测波形上就不再增加了
|