aboutsummaryrefslogtreecommitdiffstats
path: root/os/hal/include/icu.h
diff options
context:
space:
mode:
Diffstat (limited to 'os/hal/include/icu.h')
-rw-r--r--os/hal/include/icu.h7
1 files changed, 3 insertions, 4 deletions
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)
/**