• 正文
  • 相關(guān)推薦
  • 電子產(chǎn)業(yè)圖譜
申請(qǐng)入駐 產(chǎn)業(yè)圖譜

學(xué)習(xí)LPC1768庫函數(shù)之外部中斷實(shí)驗(yàn)

02/05 16:07
1053
加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點(diǎn)資訊討論

LPC1768只有P0和P2有中斷功能,這個(gè)兩個(gè)端口共用中斷線3,可以配置上升沿觸發(fā)或者下降沿觸發(fā)。什么是上升沿?什么是下降沿?

上升沿是低電平高電平的過程。

下降沿是高電平到低電平的過程。

原理圖當(dāng)中可以看出,要設(shè)置為下降沿觸發(fā)。

void KEY_Config(void){
//第一步 使能GPIO時(shí)鐘功率,只有使能了GPIO時(shí)鐘功率,才能有效操作Gpio寄存器。
Chip_GPIO_Init(LPC_GPIO);//打開GPIO時(shí)鐘功率
//第二步 設(shè)置GPIO為普通GPIO功能,關(guān)閉上下拉。 Chip_IOCON_PinMux(LPC_IOCON, 2, 10, IOCON_MODE_INACT, IOCON_FUNC0);//設(shè)置P2.0為GPIO功能
Chip_IOCON_PinMux(LPC_IOCON, 2, 11, IOCON_MODE_INACT, IOCON_FUNC0);
Chip_IOCON_PinMux(LPC_IOCON, 2, 12, IOCON_MODE_INACT, IOCON_FUNC0);
Chip_IOCON_PinMux(LPC_IOCON, 2, 25, IOCON_MODE_INACT, IOCON_FUNC0);
Chip_IOCON_PinMux(LPC_IOCON, 2, 26, IOCON_MODE_INACT, IOCON_FUNC0);
Chip_IOCON_PinMux(LPC_IOCON, 2, 27, IOCON_MODE_INACT, IOCON_FUNC0);
Chip_IOCON_PinMux(LPC_IOCON, 2, 28, IOCON_MODE_INACT, IOCON_FUNC0);
Chip_IOCON_PinMux(LPC_IOCON, 2, 29, IOCON_MODE_INACT, IOCON_FUNC0);
//第三步 設(shè)置GPIO為輸入模式,因?yàn)槭且x取外部電路電平值。
Chip_GPIO_SetPinDIR(LPC_GPIO,2, 10, false);//設(shè)置輸入模式
Chip_GPIO_SetPinDIR(LPC_GPIO,2, 11, false);//設(shè)置輸入模式
Chip_GPIO_SetPinDIR(LPC_GPIO,2, 12, false);//設(shè)置輸入模式
Chip_GPIO_SetPinDIR(LPC_GPIO,2, 25, false);//設(shè)置輸入模式
Chip_GPIO_SetPinDIR(LPC_GPIO,2, 26, false);//設(shè)置輸入模式
Chip_GPIO_SetPinDIR(LPC_GPIO,2, 27, false);//設(shè)置輸入模式
Chip_GPIO_SetPinDIR(LPC_GPIO,2,28, false);//設(shè)置輸入模式
Chip_GPIO_SetPinDIR(LPC_GPIO,2, 29, false);//設(shè)置輸入模式
//第四步 P2.10,P2.11,設(shè)置下降沿觸發(fā)
Chip_GPIOINT_SetIntFalling(LPC_GPIOINT, 2, 0x03 << 10);//P2.10,P2.11,設(shè)置下降沿觸發(fā)
//第五步 //使能中斷線3
NVIC_EnableIRQ(EINT3_IRQn);//使能中斷

}

/************************************************************************************************
函數(shù)名:void EINT3_IRQHandler(void)
函數(shù)功能:中斷服務(wù)函數(shù)
參數(shù):無
返回值:無
*************************************************************************************************/
void EINT3_IRQHandler(void)
{

if(Chip_GPIOINT_GetStatusFalling(LPC_GPIOINT,2)>>10&0x01){//判斷是否為P2.10發(fā)生下降沿觸發(fā)標(biāo)志
Chip_GPIOINT_ClearIntStatus(LPC_GPIOINT, 2, 1 << 10);//清除中斷標(biāo)志
LED4_ON(1);
}
else if(Chip_GPIOINT_GetStatusFalling(LPC_GPIOINT,2)>>11&0x01){

Chip_GPIOINT_ClearIntStatus(LPC_GPIOINT, 2, 1 << 1);//清除中斷標(biāo)志
LED5_ON(1);
}

}

相關(guān)推薦

電子產(chǎn)業(yè)圖譜