diff --git a/drivers/pulse_counter/pulse_counter.c b/drivers/pulse_counter/pulse_counter.c index ea5ca8c64b6dc03703371452ac50cf4bf8b8736d..0a8fc10d612cd6ab68586f7ac39073855f80526b 100644 --- a/drivers/pulse_counter/pulse_counter.c +++ b/drivers/pulse_counter/pulse_counter.c @@ -38,7 +38,15 @@ static void pulse_counter_trigger(void *arg) /* Initialize pulse counter */ int pulse_counter_init(pulse_counter_t *dev, const pulse_counter_params_t *params) { - if (gpio_init_int(params->gpio, GPIO_IN_PU, params->gpio_flank, pulse_counter_trigger, dev)) { + gpio_mode_t gpio_mode; + if (params->gpio_flank == GPIO_FALLING) { + gpio_mode = GPIO_IN_PU; + } + else { + gpio_mode = GPIO_IN_PD; + } + + if (gpio_init_int(params->gpio, gpio_mode, params->gpio_flank, pulse_counter_trigger, dev)) { return -1; }