您好!
在我们可以在 tm4c123ghpm 上附加中断的引脚上是否存在任何限制?
此外、当我们在同一个端口上有2个中断引脚时、我们是在每个引脚上连接多个 ISR、还是在每个端口上仅连接一个 ISP:
从示例来看、我做了如下工作:
void ISR (void){
if (GPIOIntStatus (GPIO_PORTC_BASE、TRUE)& GPIO_PIN_6){
GPIOIntClear (GPIO_PORTC_BASE、GPIO_PIN_6);
}否则、if (GPIOIntStatus (GPIO_PORTC_BASE、TRUE)& GPIO_PIN_5){
GPIOIntClear (GPIO_PORTC_BASE、GPIO_PIN_5);
}
}
我使用以下命令初始化两个引脚:
GPIOPinTypeGPIOInput (GPIO_PORTC_BASE、GPIO_PIN_5 | GPIO_PIN_6);
GPIOPadConfigSet (GPIO_PORTC_BASE、GPIO_PIN_5 | GPIO_PIN_6、GPIO_Strength _2mA、GPIO_PIN_TYPE_STD);
GPIOIntDisable (GPIO_PORTC_BASE、GPIO_PIN_5 | GPIO_PIN_6);
GPIOIntClear (GPIO_PORTC_BASE、GPIO_PIN_5 | GPIO_PIN_6);
GPIOIntRegister (GPIO_PORTC_BASE、ISR);
GPIOIntTypeSet (GPIO_PORTC_BASE、GPIO_PIN_5 | GPIO_PIN_6、GPIO_RISE_EDGE);
GPIOIntEnable (GPIO_PORTC_BASE、GPIO_PIN_5 | GPIO_PIN_6);
在我的 ISR 中、我通常将 volatile 布尔值设置为 true、然后在主循环中处理该值。
是否有更好的方法来实现此目的? 例如、我是否可以在主循环 GPIOIntStatus (GPIO_PORTC_BASE、TRUE)中检查中断、而不是清除 ISR 内部的中断。 (前提是循环处理前不会出现另一个中断。
此致、
C.A.