单片机中断嵌套语句c语言,关于赛元单片机的中断嵌套的问题求解答
單片機(jī)型號(hào):??SC92F7423
遇到的問(wèn)題: 發(fā)現(xiàn)在低等級(jí)的中斷服務(wù)程序中加入類似于死等的條件,高等級(jí)中斷發(fā)生時(shí)不能打斷低優(yōu)先級(jí)的中斷
下面是我的一段模擬串口的程序,發(fā)現(xiàn)程序總是卡在while(!Time2Flag);里,(因?yàn)槲业狞c(diǎn)燈沒(méi)有得到執(zhí)行)
void Timer2() interrupt 5
{
TF2 = 0;? ?//溢出清零
P22 = ~P22;
LEDPIN =1;? ? //點(diǎn)亮LED
Time2Flag =1;
}
void EX2() interrupt? ? ? ? 2
{
//有下降沿中斷,說(shuō)明收到了起始位,開始接收
DisableINT1_2();
EnableTim2();
//if(UART_RX == 1){
// EnableINT1_2();
//return;
//}
while(!Time2Flag);? ?//等待一個(gè)bit時(shí)間,接收第一個(gè)數(shù)據(jù)位
Time2Flag =0;
UartRecvOneByte_0 =(bit)UART_RX;
while(!Time2Flag);? ?//等待一個(gè)bit時(shí)間,接收第二個(gè)數(shù)據(jù)位
Time2Flag =0;
UartRecvOneByte_1 =(bit)UART_RX;
while(!Time2Flag);? ?//等待一個(gè)bit時(shí)間,接收第三個(gè)數(shù)據(jù)位
Time2Flag =0;
UartRecvOneByte_2 =(bit)UART_RX;
while(!Time2Flag);? ?//等待一個(gè)bit時(shí)間,接收第四個(gè)數(shù)據(jù)位
Time2Flag =0;
UartRecvOneByte_3 =(bit)UART_RX;
while(!Time2Flag);? ?//等待一個(gè)bit時(shí)間,接收第五個(gè)數(shù)據(jù)位
Time2Flag =0;
UartRecvOneByte_4 =(bit)UART_RX;
while(!Time2Flag);? ?//等待一個(gè)bit時(shí)間,接收第六個(gè)數(shù)據(jù)位
Time2Flag =0;
UartRecvOneByte_5 =(bit)UART_RX;
while(!Time2Flag);? ?//等待一個(gè)bit時(shí)間,接收第七個(gè)數(shù)據(jù)位
Time2Flag =0;
UartRecvOneByte_6 =(bit)UART_RX;
while(!Time2Flag);? ?//等待一個(gè)bit時(shí)間,接收第八個(gè)數(shù)據(jù)位
Time2Flag =0;
UartRecvOneByte_7 =(bit)UART_RX;
while(!Time2Flag){? ? ? ???//等待接收停止位
if(UART_RX==1){
Time2Flag =0;
break;
}
}
DisableTim2();
EnableINT1_2();
}
總結(jié)
以上是生活随笔為你收集整理的单片机中断嵌套语句c语言,关于赛元单片机的中断嵌套的问题求解答的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: jconsole进行java死锁检测
- 下一篇: CTeX下的WinEdt和GSview相