您好 Charles、
我希望您做得好。
我正面临另一个奇怪的问题。 我在 GPIO_PORTM_BASE 上有两个中断、一个在 GPIO_PIN_3 即 PM3另一个是 GPIO_PIN_6 即 PM6。 GPIO_PIN_6 中断将始终被触发、并将 CPU 固定在中断处理程序例程中、而 GPIO_PIN_3 中断会在前几个周期内触发 CPU 进入中断处理程序例程。 但是、一段时间后、CPU 将不会从 GPIO_PIN_3 我已将中断信号范围限定在 GPIO_PIN_3 我可以看到中断信号始终如预期那样出现。
GPIO_PIN_3 是在15ms 运行的周期性中断、 GPIO_PIN_6 是用户按下按钮时触发 ISR 的按钮。
GPIO_PIN_6 将始终触发 CPU。
以下是我的代码。
定义为:
#define PSONOFFRESET_RQST_PORT GPIO_PORTM_BASE #define PSONOFFRESET_RQST_PIN GPIO_PIN_6 //PM6 #define ADC_CTRL_PORT GPIO_PORTM_BASE #define ADC_BUSY GPIO_PIN_3 //PM3
ISR 现已问世;
//Interrupt Service Routine void PORTM_Common_IntHandler(void) { // Clear the interrupt uint32_t status; SysCtlDelay(10); status = GPIOIntStatus(ADC_CTRL_PORT, true); if(status & ADC_BUSY) { ExtADC_Collect_Data(); } else if (status & PSONOFFRESET_RQST_PIN) { Global_Flag = 1; } } GPIOIntClear(ADC_CTRL_PORT, status); } //Enable GPIO_PIN_6 interrupt function void PS_ONOFFRESET_Req_interrupt_enable(void) { IntMasterDisable(); GPIOPinTypeGPIOInput(PSONOFFRESET_RQST_PORT, PSONOFFRESET_RQST_PIN); GPIOPadConfigSet(PSONOFFRESET_RQST_PORT, PSONOFFRESET_RQST_PIN, GPIO_STRENGTH_2MA, GPIO_PIN_TYPE_STD_WPU); // Enable weak pullup resistor for ADC_BUSY GPIOIntDisable(PSONOFFRESET_RQST_PORT, PSONOFFRESET_RQST_PIN); GPIOIntClear(PSONOFFRESET_RQST_PORT, PSONOFFRESET_RQST_PIN); GPIOIntRegister(PSONOFFRESET_RQST_PORT, PORTM_Common_IntHandler); GPIOIntTypeSet(PSONOFFRESET_RQST_PORT, PSONOFFRESET_RQST_PIN, GPIO_LOW_LEVEL); GPIOIntEnable(PSONOFFRESET_RQST_PORT, PSONOFFRESET_RQST_PIN); IntMasterEnable(); } //Enable GPIO_PIN_3 interrupt function void ExtADC_Busy_interrupt_enable(void) { //Enable Interrupt on ADC_BUSY Pin IntMasterDisable(); GPIOPinTypeGPIOInput(ADC_CTRL_PORT, ADC_BUSY); GPIOPadConfigSet(ADC_CTRL_PORT, ADC_BUSY, GPIO_STRENGTH_2MA, GPIO_PIN_TYPE_STD_WPD); GPIOIntDisable(ADC_CTRL_PORT, ADC_BUSY); GPIOIntClear(ADC_CTRL_PORT, ADC_BUSY); GPIOIntRegister(ADC_CTRL_PORT, PORTM_Common_IntHandler); GPIOIntTypeSet(ADC_CTRL_PORT, ADC_BUSY, GPIO_FALLING_EDGE); GPIOIntEnable(ADC_CTRL_PORT, ADC_BUSY); IntMasterEnable(); }
不知道、出了什么问题。
感谢您的帮助。
此致