From 6c97d4f6fb4184c41f6283ce025a7030280a1802 Mon Sep 17 00:00:00 2001 From: gdisirio Date: Sun, 31 Aug 2014 17:21:02 +0000 Subject: Enhanced ICU driver. git-svn-id: svn://svn.code.sf.net/p/chibios/svn/trunk@7211 35acf78f-673a-0410-8e92-d51de3d6d3f4 --- os/hal/include/icu.h | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) (limited to 'os/hal/include') diff --git a/os/hal/include/icu.h b/os/hal/include/icu.h index 1839c214f..0b85aa97b 100644 --- a/os/hal/include/icu.h +++ b/os/hal/include/icu.h @@ -183,7 +183,7 @@ typedef void (*icucallback_t)(ICUDriver *icup); * @notapi */ #define _icu_isr_invoke_width_cb(icup) do { \ - if (((icup)->state != ICU_WAITING) && \ + if (((icup)->state == ICU_ACTIVE) && \ ((icup)->config->period_cb != NULL)) \ (icup)->config->width_cb(icup); \ } while (0) @@ -196,11 +196,10 @@ typedef void (*icucallback_t)(ICUDriver *icup); * @notapi */ #define _icu_isr_invoke_period_cb(icup) do { \ - icustate_t previous_state = (icup)->state; \ - (icup)->state = ICU_ACTIVE; \ - if ((previous_state != ICU_WAITING) && \ + if (((icup)->state == ICU_ACTIVE) && \ ((icup)->config->period_cb != NULL)) \ (icup)->config->period_cb(icup); \ + (icup)->state = ICU_ACTIVE; \ } while (0) /** -- cgit v1.2.3