diff options
author | Giovanni Di Sirio <gdisirio@gmail.com> | 2016-03-13 11:39:44 +0000 |
---|---|---|
committer | Giovanni Di Sirio <gdisirio@gmail.com> | 2016-03-13 11:39:44 +0000 |
commit | e0ed67de6b5d4025aaad9e74080a3a421c1a760b (patch) | |
tree | 7f64dd94af225ff24c68904fea7843e0f884b684 /os/hal/ports/STM32/LLD | |
parent | 8464f9100e1a7da211e00868d7219f83c3e66b49 (diff) | |
download | ChibiOS-e0ed67de6b5d4025aaad9e74080a3a421c1a760b.tar.gz ChibiOS-e0ed67de6b5d4025aaad9e74080a3a421c1a760b.tar.bz2 ChibiOS-e0ed67de6b5d4025aaad9e74080a3a421c1a760b.zip |
Fixed bug #725.
git-svn-id: svn://svn.code.sf.net/p/chibios/svn/trunk@9088 35acf78f-673a-0410-8e92-d51de3d6d3f4
Diffstat (limited to 'os/hal/ports/STM32/LLD')
-rw-r--r-- | os/hal/ports/STM32/LLD/ADCv1/adc_lld.c | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/os/hal/ports/STM32/LLD/ADCv1/adc_lld.c b/os/hal/ports/STM32/LLD/ADCv1/adc_lld.c index bd73a315f..2cb340e45 100644 --- a/os/hal/ports/STM32/LLD/ADCv1/adc_lld.c +++ b/os/hal/ports/STM32/LLD/ADCv1/adc_lld.c @@ -150,6 +150,14 @@ void adc_lld_init(void) { /* Calibration procedure.*/
rccEnableADC1(FALSE);
+
+ /* CCR setup.*/
+#if STM32_ADC_SUPPORTS_PRESCALER
+ ADC->CCR = STM32_ADC_PRESC << 18;
+#else
+ ADC->CCR = 0;
+#endif
+
osalDbgAssert(ADC1->CR == 0, "invalid register state");
ADC1->CR |= ADC_CR_ADCAL;
osalDbgAssert(ADC1->CR != 0, "invalid register state");
@@ -207,6 +215,13 @@ void adc_lld_stop(ADCDriver *adcp) { dmaStreamRelease(adcp->dmastp);
+ /* Restoring CCR default.*/
+#if STM32_ADC_SUPPORTS_PRESCALER
+ ADC->CCR = STM32_ADC_PRESC << 18;
+#else
+ ADC->CCR = 0;
+#endif
+
/* Disabling ADC.*/
if (adcp->adc->CR & ADC_CR_ADEN) {
adc_lld_stop_adc(adcp->adc);
|