標(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