標(biāo)題: C51單片機(jī)紅外中斷處理 [打印本頁(yè)]

作者: sirius2015    時(shí)間: 2017-8-24 09:53
標(biāo)題: C51單片機(jī)紅外中斷處理
// 紅外中斷初始化,采用外部中斷1的下降沿有效,引發(fā)中斷
void InitInfrared()
{        
        IR_INPUT = 1;
        IT1 = 1;
        EX1 = 1;
}

// 紅外的中斷處理程序
void EXINT1_ISR() interrupt 2
{
       // 設(shè)置中斷發(fā)生了FLAG
        irflag = 1;
        // 清中斷標(biāo)志位
        IE1 = 0;
}

問(wèn)題:
1.紅外中斷處理函數(shù)是 ,只要是引腳IR_INPUT電平從1變成0都會(huì)進(jìn)入這個(gè)中斷函數(shù)嗎?
   因?yàn)橐粋(gè)紅外數(shù)據(jù),(NEC格式的)有引導(dǎo)碼+用戶碼+用戶反碼+鍵值碼+鍵值反碼,所以遙控器按下一個(gè)鍵,會(huì)引起30幾次的電平從1變成0.
  這個(gè)函數(shù)會(huì)進(jìn)入30多次嗎
2.如果EXINT1_ISR()里面,要處理的東西比較多。比如,每一次處理要10ms
  那么遙控器按下一個(gè)鍵的時(shí)候,假如會(huì)有30幾次的電平從1變到0,但來(lái)不及處理,那么進(jìn)入中斷的次數(shù)會(huì)怎么變,會(huì)丟棄幾次嗎?還是等待,排隊(duì),然后一個(gè)個(gè)進(jìn)入中斷函數(shù)?






歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1