EFM32之外部中斷

(a)設置時鐘:

CMU_ClockSelectSet(cmuClock_HF,cmuSelect_HFXO);//32MHz
(b)配置NVIC:
void NVIC_Config(void)
{
    NVIC_InitTypeDef NVIC_InitStructure;
#ifdef VECT_TAB_RAM
    NVIC_SetVectorTable(NVIC_VectTab_RAM,0x0);
#else
    NVIC_SetVectorTable(NVIC_VectTab_FLASH,0x0);
#endif
    NVIC_PriorityGropConfig(NVIC_PriorityGrop_1);//先佔優先級1位,從優先級3位
    NVIC_InitStructure.NVIC_IRQChannel = TIMER0_IRQn;//定時器0中斷
    NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 1;//先佔優先級
    NVIC_InitStructure.NVIC_IRQChannelSubPriority = 3;//從優先級
    NVIC_InitStructure.NVIC_IRQChannelCmd = true;
    NVIC_Init(&NVIC_InitStructure);

    NVIC_InitStructure.NVIC_IRQChannel = GPIO_ODD_IRQn;//配置奇數中斷,這裏要注意,EFM32的外部中斷只有奇、偶兩種處理函數
    NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 1;//先佔優先級
    NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0;//從優先級
    NVIC_InitStructure.NVIC_IRQChannelCmd = true;
    NVIC_Init(&NVIC_InitStructure);


    NVIC_InitStructure.NVIC_IRQChannel = GPIO_EVEN_IRQn;//配置偶數中斷
    NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 1;//先佔優先級
    NVIC_InitStructure.NVIC_IRQChannelSubPriority = 1;//從優先級
    NVIC_InitStructure.NVIC_IRQChannelCmd = true;
    NVIC_Init(&NVIC_InitStructure);
}
外部中斷管腳配置:
void EXTI_Config(void)
{
    CMU_HFPRECLKEN0 |= (1<<6);//使能GPIO時鐘
    GPIO->P[3].MODEH |= (3<<0);//PD8設置成輸入帶過濾器
    GPIO->P[3].DOUT |= (1<<8);//上拉


    GPIO->EXTIPSELH |= (3<<0);//選擇PD8
    GPIO->EXTIRISE |= (1<<8);//PD8上升沿有效
    GPIO->IEN |= (1<<8);//外部中斷8使能


    GPIO->P[3].MODEH |= (3<<12);//PB11設置成輸入帶過濾器
    GPIO->P[3].DOUT |= (1<<11);//上拉


    GPIO->EXTIPSELH |= (1<<12);//選擇PB11
    GPIO->EXTIRISE |= (1<<11);//PB11上升沿有效
    GPIO->IEN |= (1<<11);//外部中斷11使能
}
中斷服務程序:

當按下按鍵後LED燈的狀態改變

void GPIO_ODD_IRQHandler(void)
{
    if(GPIO->IF & 0x800)
    {
        GPIO->IFC |= (1<<11);
        LED_Toggle();
    }
}


void GPIO_EVEN_IRQHandler(void)
{
    if(GPIO->IF & 0x100)
    {
        GPIO->IFC |= (1<<8);
        LED_Toggle();
    }
}
發佈了34 篇原創文章 · 獲贊 2 · 訪問量 5萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章