Есть ли разница в использовании внешних прерываний между GPIO (шина AHB) и теми (шина APB)? - PullRequest
2 голосов
/ 27 июня 2019

Я настроил GPIO PR4 для работы в качестве внешнего триггера прерывания на переднем фронте. Но ISR прерывания не запускается. Тот же код хорошо работает с GPIO PC5.Мой платформой является Cortex M3 (TI F28M36x).

GPIO PC5 имеет то же использование, что и PR4 (другой источник прерываний). Я должен был проверить внешнюю волну в PR4 (высокий уровень более 3,0 В). Я обнаружил, что PR4 использует шину AHP, но PC5 использует шину APB, интересно, эта разница дает другой результат? Мой код настройки выглядит так:

SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOR);
GPIOPinTypeGPIOInput(GPIO_PORTR_BASE, GPIO_PIN_4);
GPIOPinIntClear(GPIO_PORTR_BASE,GPIO_PIN_4);
GPIOIntTypeSet(GPIO_PORTR_BASE, GPIO_PIN_4, GPIO_BOTH_EDGES);   
IntRegister(INT_GPIOR, IntGPIORHandler);
IntEnable(INT_GPIOR);
GPIOPinIntEnable(GPIO_PORTR_BASE, GPIO_PIN_4);

ISR (IntGPIORHandler) никогда не вводился при отладке в инструментах CCS.

1 Ответ

2 голосов
/ 27 июня 2019

Я нашел решение для сообщества TI. Это не приводит к проблеме AHB, но driverlib слишком стар. https://e2e.ti.com/support/microcontrollers/c2000/f/171/t/552983?tisearch=e2e-sitesearch&keymatch=GPIO%20port%20R%20interrupt

Я использую этот код вместо "IntRegister () и IntEnable ()".

IntRegister(148, IntGPIORHandler);
HWREG(0xE000E110) = 1 << (132 - 128);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...