結束外部中斷服務程序(ISR)我寫的與硬件一個簡單的LED閃爍代碼中斷的8051 0當按下按鈕,它進入中斷服務程序(ISR)。執行後它應該回到主函數但它不會到來。 這是我的c代碼。任何積極的答覆將不勝感激。如何在8051
sbit LED = P1^0;
void delay(int ms)
{
int i;
for(i=0;i<ms;i++)
{
TMOD = 0x01;
TH0 = 0xFC;
TL0 = 0x66;
TR0 = 1;
while(TF0==0);
TR0 = 0;
TF0 = 0;
}
}
void main(void)
{
P1 = 0x00;
/// P3 = 0x04;
IT0 = 1;
EX0 = 1;
EA = 1;
LED=1;
while(1)
{
LED=~LED;
delay(200);
}
return ;
}
void external0_isr() interrupt 0
{
EA=0;
LED =0 ;
delay(2000);
LED=1;
EX0=1;
EA=1;
return;
}
一般情況下,你想花盡可能少的時間儘可能在ISR。 '延遲(2000)'似乎不合適。 –