牛卧堂MCU技术交流
标题:
求助 M058外部中断问题
[打印本页]
作者:
codysafe
时间:
2014-6-27 09:33
标题:
求助 M058外部中断问题
我自己的板子上P32、P33外部中断没反应。用论坛的初始化工具配置的不行,自己配置的也不行。其他引脚中断正常。P32~P35。每个端口都有几个做中断用的,就P32 P33不行。
P3->PMD |= 0x00000000;
P3->IEN |= 0x007C007C;
作者:
a_ziliu
时间:
2014-6-27 10:09
m051的p32, p33是int 0, int 1中斷,是專用的中斷向量
建議使用bsp裡面的例子
M051_Series_BSP_CMSIS_Rev3.00.001\SampleCode\RegBased\GPIO_EINTAndDebounce
void EINT0_IRQHandler(void)
{
/* For P3.2, clear the INT flag */
P3->ISRC = BIT2;
printf("P3.2 EINT0 occurred.\n");
}
void EINT1_IRQHandler(void)
{
/* For P3.3, clear the INT flag */
P3->ISRC = BIT3;
printf("P3.3 EINT1 occurred.\n");
}
SYS->P3_MFP |= (SYS_MFP_P30_RXD0 | SYS_MFP_P31_TXD0 | SYS_MFP_P32_INT0 | SYS_MFP_P33_INT1);
/* Configure P3.2 as EINT0 pin and enable interrupt by falling edge trigger */
P3->PMD = P3->PMD & (~GPIO_PMD_PMD2_Msk) | (GPIO_PMD_INPUT << GPIO_PMD_PMD2_Pos);
P3->IMD |= (GPIO_IMD_EDGE << 2);
P3->IEN |= (BIT2 << GPIO_IEN_IF_EN_Pos);
NVIC_EnableIRQ(EINT0_IRQn);
/* Configure P3.3 as EINT1 pin and enable interrupt by rising and falling edge trigger */
P3->PMD = P3->PMD & (~GPIO_PMD_PMD3_Msk) | (GPIO_PMD_INPUT << GPIO_PMD_PMD3_Pos);
P3->IMD |= (GPIO_IMD_EDGE << 3);
P3->IEN |= ((BIT3 << GPIO_IEN_IR_EN_Pos) | (BIT3 << GPIO_IEN_IF_EN_Pos));
NVIC_EnableIRQ(EINT1_IRQn);
作者:
codysafe
时间:
2014-6-27 11:15
好了,谢谢。这算是对51的兼容么。弄两个专用的外部中断出来。
欢迎光临 牛卧堂MCU技术交流 (http://nuvoton-mcu.com/)
Powered by Discuz! X3.2