I am using DA14585 with SDK 6.0.4, I also enabled ext-sleep mode.
A g-sensor is connected to a DA14585 through i2c. There is a interrupt pin.
The interruption of the sensor is designed as initially high, once the data ready, the interrupt pin will be low and then be high.
I would like to detect the rising edge for the interrupt pin, and I configure it as followings:
in void set_pad_functions(void):
GPIO_ConfigurePin(I2C_INT1_PORT, I2C_INT1_PIN, INPUT_PULLUP, PID_GPIO, true); //G Sensor INT1
GPIO_RegisterCallback( GPIO0_IRQn, LIS3DH_Interrupt1_Handler);
GPIO_EnableIRQ( I2C_INT1_PORT, I2C_INT1_PIN, GPIO0_IRQn, false, true, 3 );
in static inline void arch_goto_sleep (sleep_mode_t current_sleep_mode):
ext_wakeup_enable(I2C_INT1_PORT, I2C_INT1_PIN, 0); //0 => active high
However, I find that my callback function will be called every wake-up time.
The reason may be that the GPIO_EnableIRQ(in set_pad_functions) is set again and the interrupt pin is high at that time.
As I know, the GPIO interruption of DA14585 is level triggered, right?
Do you guys have any idea to solve this problem?