设置GPIO4_4(LED0)的中断来使LED1亮,使用GPIOTriggerPinInt来触发,但是运行完这行触发不了中断,下面是我的代码
/* XDCtools Header files */ #include <xdc/std.h> #include <xdc/cfg/global.h> #include <xdc/runtime/System.h> #include <xdc/runtime/Error.h> /* BIOS Header files */ #include <ti/sysbios/BIOS.h> #include <ti/sysbios/knl/Task.h> #include <stdio.h> /* TI-RTOS Header files */ #include <ti/drv/gpio/GPIO.h> #include <ti/drv/gpio/soc/GPIO_soc.h> /* UART Header files */ #include <ti/drv/uart/UART.h> #include <ti/drv/uart/UART_stdio.h> #include <ti/drv/uart/test/src/UART_board.h> #include <ti/board/board.h> #include <ti/csl/soc.h> #include <ti/csl/soc/am572x/src/cslr_control_core_pad_io.h> #include <ti/board/src/evmAM572x/include/evmam572x_pinmux.h> /********************************************************************** ************************** Macros ************************************ **********************************************************************/ #define GPIO_PIN_VAL_LOW (0U) #define GPIO_PIN_VAL_HIGH (1U) #define GPIO_USER0_LED_PIN_NUM (0x04U) #define GPIO_USER0_LED_PORT_NUM (0x04) /* user-led0, gpio4_4 */ #define GPIO_USER1_LED_PIN_NUM (0x04U) #define GPIO_USER1_LED_PORT_NUM (0x05) /* user-led1, gpio5_4 */ #define GPIO_USER2_LED_PIN_NUM (0x05U) #define GPIO_USER2_LED_PORT_NUM (0x05) /* user-led2, gpio5_5 */ /********************************************************************** ************************** Internal functions ************************ **********************************************************************/ /* GPIO Driver board specific pin configuration structure */ GPIO_PinConfig gpioPinConfigs[] = { GPIO_DEVICE_CONFIG(GPIO_USER0_LED_PORT_NUM, GPIO_USER0_LED_PIN_NUM) | GPIO_CFG_INPUT | GPIO_CFG_IN_INT_RISING, GPIO_DEVICE_CONFIG(GPIO_USER1_LED_PORT_NUM,GPIO_USER1_LED_PIN_NUM) | GPIO_CFG_OUTPUT }; void myfunc(void) { static int count = 0; count ++; GPIO_write(1, GPIO_PIN_VAL_HIGH); } GPIO_CallbackFxn gpioCallbackFunctions[] = { myfunc, }; /* GPIO Driver configuration structure */ GPIO_v1_Config GPIO_v1_config = { gpioPinConfigs, gpioCallbackFunctions, sizeof(gpioPinConfigs) / sizeof(GPIO_PinConfig), sizeof(gpioCallbackFunctions) / sizeof(GPIO_CallbackFxn), 0x20, }; /* * ======== main ======== */ int main(void) { uint32_t regVal = 0; //count = 1; /* Call board_init functions */ GPIO_init(); CSL_FINS(regVal, CONTROL_CORE_PAD_IO_PAD_VIN2A_D3_VIN2A_D3_MUXMODE, 0xEU); ((CSL_padRegsOvly) CSL_MPU_CORE_PAD_IO_REGISTERS_REGS)->PAD_VIN2A_D3 = regVal; /* vin2a_d3.gpio4_4(user_led0) */ //GPIO_setCallback(0, myfunc); /* Enable GPIO interrupt on the specific gpio pin */ GPIO_enableInt(0); GPIO_write(1, GPIO_PIN_VAL_HIGH); //GPIO_write(1, GPIO_PIN_VAL_HIGH); //GPIO_toggle(0); GPIOTriggerPinInt(CSL_IPU_GPIO4_REGS,0,0x4); // GPIO_write(1, GPIO_PIN_VAL_LOW); //BIOS_start(); return (0); }