中断新问题发现:按以下代码配置为跳变沿触发,刚开如始时上升沿与下降沿都能中断,但试了几次后只有下降沿能中断,谁能帮我看看出错在哪里?个人估计不是代码问题。要是设为 IT1 = 0;(下降沿/低电平),工作正常。
#include "REG_MG84FL54.H"
#define None 0
#define True 1
void delay_ms(unsigned int z) //12MHZ 100ms delay -287us,10ms -7us
{
unsigned int x,y;
for(x=z;x>0;x--)
for(y=123;y>0;y--);
}
void Init_Ext1(void)
{
P3M0 |= (1<<3); //set input
P3M1 &= (0<<3);
EA = True; //Open Overall interrupt
EX1 = None; //Disable External0 Interrupt
IT1 = True; //=1(Edge Trigger) =0(Falling Edge/Low Level Trigger)
}
void main()
{
Init_Ext1();
EX1 = True; //Enable External Interrupt
P13 = True;
while(1)
{P13 = True;}
}
void INT_EXTER1(void) interrupt 2 using 2
{
P13 = None; //LED
delay_ms(2000);
}
|