aboutsummaryrefslogtreecommitdiffstats
path: root/os/hal/include/adc.h
diff options
context:
space:
mode:
Diffstat (limited to 'os/hal/include/adc.h')
-rw-r--r--os/hal/include/adc.h11
1 files changed, 7 insertions, 4 deletions
diff --git a/os/hal/include/adc.h b/os/hal/include/adc.h
index 7c67e20d1..d7f918da3 100644
--- a/os/hal/include/adc.h
+++ b/os/hal/include/adc.h
@@ -228,18 +228,21 @@ typedef enum {
/* Invokes the callback passing the 2nd half of the buffer.*/ \
size_t half = (adcp)->depth / 2; \
size_t half_index = half * (adcp)->grpp->num_channels; \
- (adcp)->grpp->end_cb(adcp, (adcp)->samples + half_index, half); \
+ (adcp)->grpp->end_cb(adcp, (adcp)->samples + half_index, (adcp)->depth - half); \
} \
else { \
/* Invokes the callback passing the whole buffer.*/ \
(adcp)->grpp->end_cb(adcp, (adcp)->samples, (adcp)->depth); \
} \
- if ((adcp)->state == ADC_COMPLETE) \
+ if ((adcp)->state == ADC_COMPLETE) { \
(adcp)->state = ADC_READY; \
+ (adcp)->grpp = NULL; \
+ } \
} \
- else \
+ else { \
(adcp)->state = ADC_READY; \
- (adcp)->grpp = NULL; \
+ (adcp)->grpp = NULL; \
+ } \
_adc_wakeup_isr(adcp); \
} \
}