khlenar 5 November 24 Posted November 24 · Report post Здравствуйте всем. Почему то не получается вызвать внешнее прерывание по входу GPIO58. Вот инициализация: InitPieCtrl(); IER = 0x0000; IFR = 0x0000; InitPieVectTable(); PieCtrlRegs.PIECTRL.bit.ENPIE = 1; // Enable the PIE block PieCtrlRegs.PIEIER12.bit.INTx1 = 1; // Enable PIE Group 12 INT1 EALLOW; PieVectTable.XINT3 = &xint3_isr; EDIS IER |= M_INT3; EINT; EALLOW; GpioCtrlRegs.GPBMUX2.bit.GPIO58 = 0; // GPIO GpioCtrlRegs.GPBPUD.bit.GPIO58 = 1; GpioCtrlRegs.GPBDIR.bit.GPIO58 = 0; // input GpioCtrlRegs.GPBQSEL2.bit.GPIO58 = 0; // EDIS; EALLOW; GpioIntRegs.GPIOXINT3SEL.bit.GPIOSEL = 26; // Xint3 is GPIO58 EDIS; XIntruptRegs.XINT3CR.bit.POLARITY = 0; // Falling edge interrupt XIntruptRegs.XINT3CR.bit.ENABLE = 1; // Enable Xint3 Quote Share this post Link to post Share on other sites More sharing options...
khlenar 5 November 25 Posted November 25 · Report post Все, разобрался. Надо было в место IER |= M_INT3; (это 3 группа, а не 3 прерывание) писать IER |= M_INT12; т.е. 12 группа. int3 находится в 12 группе. Quote Share this post Link to post Share on other sites More sharing options...