<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > at91rm9200的io口電平中斷簡(jiǎn)單理解

at91rm9200的io口電平中斷簡(jiǎn)單理解

作者: 時(shí)間:2016-11-09 來(lái)源:網(wǎng)絡(luò ) 收藏
對于PQFP封裝的9200的PIOA、PIOB和PIOC三組32*3=64個(gè)io口,他們的io中斷有這樣的特性PIO的中斷AT91C_AIC_SRCTYPE_EXT_HIGH_LEVEL和AT91C_AIC_SRCTYPE_INT_LEVEL_SENSITIVE都是電平中斷,對于PIO來(lái)說(shuō)沒(méi)有區別,在PIO中斷處理函數里邊通過(guò)檢測發(fā)生io中斷的相應io引腳輸入值為0還是為1,來(lái)判斷是高電平中斷還是低電平中斷,PIO的PIO_IER使能的相應io口線(xiàn)上輸入變化中斷--注意是變化中斷,所以對于io電平中斷也必須存在電平變化之后才能被9200捕獲到,也才能引發(fā)中斷,執行中斷處理函數,io口線(xiàn)上無(wú)電平變化也就無(wú)電平中斷會(huì )被觸法,這和51單片機的io電平中斷機制不同,51單片機當啟用外部電平中斷之后,51處理器每個(gè)clk都會(huì )檢測io的電平,如果符合中斷電平,那么立即觸發(fā)電平中斷,所以對于51單片機,只要io口上的電平為中斷電平值,那么就會(huì )不斷的觸法51的中斷處理程序,直到io口電平變?yōu)榉侵袛嚯娖街?1處理器才會(huì )停止觸法中斷,9200即便配置io為電平中斷,但是也需要io線(xiàn)上只有發(fā)上了電平變化,9200才會(huì )觸法電平變化中斷,至于這個(gè)變化中斷最終是變?yōu)榱说碗娖竭€是變?yōu)榱烁唠娖?那么需要在處理程序中讀取io值才可以進(jìn)一步判斷,不過(guò)如果存在其他irq中斷屏蔽I時(shí)間比較長(cháng),同時(shí)io電平中斷變化持續時(shí)間又比較短,那么很可能出現,到執行io電平中斷處理程序時(shí),讀取到的io口數據已經(jīng)不是引發(fā)中斷的電平值了,所以io電平中斷不是很好用,可以使用AT91C_AIC_SRCTYPE_INT_EDGE_TRIGGERED雙邊沿中斷或者AT91C_AIC_SRCTYPE_EXT_POSITIVE_EDGE上升沿中斷來(lái)完成,對于io口最好使用AT91C_AIC_SRCTYPE_EXT_POSITIVE_EDGE上升沿中斷機制,這不會(huì )出現誤數據,最壞僅僅是可能會(huì )丟掉后面的1~2個(gè)上升沿[gliethttp_20080104]

以PIOB的PB0為例:
#defineLEVEL_IRQ_PIN(0x01<<0)
AT91F_PMC_EnablePeriphClock(AT91C_BASE_PMC,((unsignedint)1AT91F_AIC_ConfigureIt(AT91C_BASE_AIC,
AT91C_ID_PIOB,
1,
AT91C_AIC_SRCTYPE_EXT_POSITIVE_EDGE,
//AT91C_AIC_SRCTYPE_INT_EDGE_TRIGGERED,//雙邊沿
//AT91C_AIC_SRCTYPE_EXT_HIGH_LEVEL,
//AT91C_AIC_SRCTYPE_INT_LEVEL_SENSITIVE,//
(void(*)(void))piob_interrupt_proc);
{volatiledummy;dummy=AT91C_BASE_PIOB->PIO_ISR;}
AT91F_PIO_InterruptEnable(AT91C_BASE_PIOB,LEVEL_IRQ_PIN);//使能PB0變化中斷
{volatiledummy;dummy=AT91C_BASE_PIOB->PIO_ISR;}
AT91F_AIC_EnableIt(AT91C_BASE_AIC,AT91C_ID_PIOB);//使能PIOB控制器中斷
以上就完成了PB0的上升沿中斷啟動(dòng),來(lái)看看中斷處理函數[ads1.2]
void__irq piob_interrupt_proc(void)
{
{volatiledummy;dummy=AT91C_BASE_PIOB->PIO_ISR;}
AT91C_BASE_AIC->AIC_EOICR=0;
if(AT91F_PIO_GetInput(AT91C_BASE_PIOB)&LEVEL_IRQ_PIN)
{
//...1電平
}else
{
//...0電平
}
}


關(guān)鍵詞: at91rm9200io口電平中

評論


技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>