您好 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();
}
不知道、出了什么问题。
感谢您的帮助。
此致