I am using C6748 and have configured 4 interrupts (INT0, INT1, INT2 and INT3) using different GPIO banks (Bank0_Pin12, Bank2_Pin03, Bank4_Pin01 and Bank3_Pin13). I have configured GPIO ints from falling edge trigger only (I have set for falling edge and clear for rising edge on my interrupt setup routine). I have following questions.
(1) Do I need to call "Gpio_clearInterruptStatus" function in my interrupt routine ?
(2) I am getting to ISR routine twice for every interrupt. Is there any setup problem ?
GPIO interrupt setup code as below. ISR routine is setup in DSP-BIOS configuration file.
pinCmdArg.pin = GPIO_BANK_0_PIN_12;
pinCmdArg.value = Gpio_Direction_Input;
Gpio_setPinDir(gpio0, &pinCmdArg);
pinCmdArg.pin = GPIO_BANK_2_PIN_03;
pinCmdArg.value = Gpio_Direction_Input;
Gpio_setPinDir(gpio0, &pinCmdArg);
pinCmdArg.pin = GPIO_BANK_3_PIN_13;
pinCmdArg.value = Gpio_Direction_Input;
Gpio_setPinDir(gpio0, &pinCmdArg);
pinCmdArg.pin = GPIO_BANK_4_PIN_01;
pinCmdArg.value = Gpio_Direction_Input;
Gpio_setPinDir(gpio0, &pinCmdArg);
Gpio_bankInterruptEnable(gpio0, GPIO_BANK_0);
Gpio_bankInterruptEnable(gpio0, GPIO_BANK_2);
Gpio_bankInterruptEnable(gpio0, GPIO_BANK_3);
Gpio_bankInterruptEnable(gpio0, GPIO_BANK_4);
Gpio_setFallingEdgeTrigger(gpio0, GPIO_BANK_0_PIN_12);
Gpio_clearRisingEdgeTrigger(gpio0, GPIO_BANK_0_PIN_12);
Gpio_setFallingEdgeTrigger(gpio0, GPIO_BANK_2_PIN_03);
Gpio_clearRisingEdgeTrigger(gpio0, GPIO_BANK_2_PIN_03);
Gpio_setFallingEdgeTrigger(gpio0, GPIO_BANK_3_PIN_13);
Gpio_clearRisingEdgeTrigger(gpio0, GPIO_BANK_3_PIN_13);
Gpio_setFallingEdgeTrigger(gpio0, GPIO_BANK_4_PIN_01);
Gpio_clearRisingEdgeTrigger(gpio0, GPIO_BANK_4_PIN_01);
Thanks
Jayesh