diff --git a/drivers/include/srf04.h b/drivers/include/srf04.h index 6e985e9851..39ecb3758a 100644 --- a/drivers/include/srf04.h +++ b/drivers/include/srf04.h @@ -87,7 +87,7 @@ void srf04_trigger(const srf04_t *dev); * @return SRF04_MEASURING if measurement is in progress * @return SRF04_INVALID if no valid measurement is available */ -int srf04_read(const srf04_t* dev); +int srf04_read(const srf04_t *dev); /** * @brief Convenience function triggers a measurement and returns distance @@ -100,7 +100,7 @@ int srf04_read(const srf04_t* dev); * @return SRF04_MEASURING if measurement is in progress * @return SRF04_INVALID if no valid measurement is available */ -int srf04_get_distance(const srf04_t* dev); +int srf04_get_distance(const srf04_t *dev); #ifdef __cplusplus } diff --git a/drivers/srf04/srf04.c b/drivers/srf04/srf04.c index 560e1e647e..a619412dc2 100644 --- a/drivers/srf04/srf04.c +++ b/drivers/srf04/srf04.c @@ -31,17 +31,19 @@ static void _cb(void *arg) { uint32_t t = xtimer_now_usec(); - srf04_t* dev = (srf04_t*)arg; + srf04_t *dev = (srf04_t *)arg; + if (dev->distance > SRF04_ERR_MEASURING) { dev->distance = SRF04_ERR_MEASURING; dev->time = t; - } else { + } + else { gpio_irq_disable(dev->p.echo); dev->distance = (t - dev->time); } } -int srf04_init(srf04_t* dev, const srf04_params_t *params) +int srf04_init(srf04_t *dev, const srf04_params_t *params) { dev->p = *params; @@ -53,7 +55,7 @@ int srf04_init(srf04_t* dev, const srf04_params_t *params) return SRF04_ERR_GPIO; } - if (gpio_init_int(dev->p.echo, GPIO_IN, GPIO_BOTH, _cb, (void*)dev) != 0) { + if (gpio_init_int(dev->p.echo, GPIO_IN, GPIO_BOTH, _cb, (void *)dev) != 0) { DEBUG("[srf04] Error: could not initialize GPIO echo pin\n"); return SRF04_ERR_GPIO; } @@ -63,7 +65,7 @@ int srf04_init(srf04_t* dev, const srf04_params_t *params) return SRF04_OK; } -void srf04_trigger(const srf04_t* dev) +void srf04_trigger(const srf04_t *dev) { if (dev->distance == SRF04_ERR_MEASURING) { return; @@ -76,12 +78,12 @@ void srf04_trigger(const srf04_t* dev) gpio_clear(dev->p.trigger); } -int srf04_read(const srf04_t* dev) +int srf04_read(const srf04_t *dev) { return dev->distance; } -int srf04_get_distance(const srf04_t* dev) +int srf04_get_distance(const srf04_t *dev) { /* Trigger new reading */ srf04_trigger(dev); diff --git a/tests/driver_srf04/main.c b/tests/driver_srf04/main.c index 1fcb615db1..ee33aefcc9 100644 --- a/tests/driver_srf04/main.c +++ b/tests/driver_srf04/main.c @@ -39,7 +39,8 @@ int main(void) int distance = srf04_get_distance(&dev); if (distance < SRF04_OK) { puts("Error: no valid data available"); - } else { + } + else { printf("D: %d mm\n", distance); } }