diff options
Diffstat (limited to 'os')
-rw-r--r-- | os/hal/platforms/SPC5xx/EQADC_v1/adc_lld.c | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/os/hal/platforms/SPC5xx/EQADC_v1/adc_lld.c b/os/hal/platforms/SPC5xx/EQADC_v1/adc_lld.c index 96a527b61..8a0c251d5 100644 --- a/os/hal/platforms/SPC5xx/EQADC_v1/adc_lld.c +++ b/os/hal/platforms/SPC5xx/EQADC_v1/adc_lld.c @@ -433,6 +433,12 @@ static void adc_serve_rfifo_irq(edma_channel_t channel, void *p) { _adc_isr_half_code(adcp);
}
else {
+ /* Re-starting DMA channels if in circular mode.*/
+ if (adcp->grpp->circular) {
+ edmaChannelStart(adcp->rfifo_channel);
+ edmaChannelStart(adcp->cfifo_channel);
+ }
+
/* Transfer complete processing.*/
_adc_isr_full_code(adcp);
}
@@ -696,7 +702,6 @@ void adc_lld_start_conversion(ADCDriver *adcp) { EDMA_TCD_MODE_DREQ | EDMA_TCD_MODE_INT_END |
((adcp->depth > 1) ? EDMA_TCD_MODE_INT_HALF: 0));/* mode.*/
-
/* HW triggers setup.*/
bitoff = 20 + ((uint32_t)adcp->fifo * 2);
SIU.ETISR.R = (SIU.ETISR.R & ~(3U << bitoff)) |
|