参考了CCS提供的gpio_input_interrupt例程,测试发现应该是上升沿和下降沿都可以触发。
想改成下降沿触发,初始化增加了
MAP_GPIO_interruptEdgeSelect(GPIO_PORT_P1
,GPIO_PIN1,GPIO_HIGH_TO_LOW_TRANSITION);
但是发现不起作用,请帮忙解答一下这么使用是否正确?
void ExitInterruptInit(){ /* Configuring P1.1 as an input and enabling interrupts */ MAP_GPIO_setAsInputPinWithPullUpResistor(GPIO_PORT_P1, GPIO_PIN1); MAP_GPIO_clearInterruptFlag(GPIO_PORT_P1, GPIO_PIN1); MAP_GPIO_enableInterrupt(GPIO_PORT_P1, GPIO_PIN1); MAP_Interrupt_enableInterrupt(INT_PORT1); /* Enabling SRAM Bank Retention */ MAP_SysCtl_enableSRAMBankRetention(SYSCTL_SRAM_BANK1); /* Enabling MASTER interrupts */ MAP_Interrupt_enableMaster(); MAP_GPIO_interruptEdgeSelect(GPIO_PORT_P1 ,GPIO_PIN1,GPIO_HIGH_TO_LOW_TRANSITION); } /* GPIO ISR */ void PORT1_IRQHandler(void) { uint32_t status; status = MAP_GPIO_getEnabledInterruptStatus(GPIO_PORT_P1); MAP_GPIO_clearInterruptFlag(GPIO_PORT_P1, status); /* Toggling the output on the LED */ if(status & GPIO_PIN1) { MAP_GPIO_toggleOutputOnPin(GPIO_PORT_P1, GPIO_PIN0); } }