Hi,
We have a piece of code based on zephyr Driver to set up a double-edge GPIO interrupt. I set the interrupt flag to GPIO_INT_EDGE_BOTH. But it doesn't seem to trigger a rising edge interrupt.
Here is my code.
Fullscreen
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
static void isr_handler(const struct device *device,
struct gpio_callback *cb, uint32_t pins)
{
printf("interrupt\r\n");
}
static int pin_configure(void)
{
int rc;
static struct gpio_callback gpio_ctx;
const struct device *gpio = device_get_binding("GPIO_0");
gpio_pin_t pin = 25;
rc = gpio_pin_configure(gpio, pin, GPIO_PULL_UP | GPIO_INPUT);
gpio_init_callback(&gpio_ctx, isr_handler, BIT(pin));
rc = gpio_add_callback(gpio, &gpio_ctx);
if (rc) {
return rc;