Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: WebSocketClient WiflyInterface mbed messages
Fork of BatteryModelTester by
Diff: source/ADC.cpp
- Revision:
- 2:7abdaa5a9209
- Parent:
- 1:4403f2ed1c1f
- Child:
- 3:f20e114eb2ee
diff -r 4403f2ed1c1f -r 7abdaa5a9209 source/ADC.cpp
--- a/source/ADC.cpp Tue Oct 04 13:19:19 2016 +0000
+++ b/source/ADC.cpp Tue Oct 04 13:59:13 2016 +0000
@@ -29,38 +29,18 @@
ADC1->CR2 = value;
wait_us(100);
+ // Set the EOC flag at the end of every regular conversion:
+ ADC1->CR2 |= ADC_CR2_EOCS;
+
// Turn on the internal temperature sensor:
ADC->CCR |= ADC_CCR_TSVREFE;
- // *** Control Register 1: CR1 ***
- value = 0;
- // [8] Set the SCAN Mode bit, to convert all registers when trigered:
- value |= ADC_CR1_SCAN;
- // [5] Set the JEOCIE bit, to trigger an interrupt when conversion ends.
- value |= ADC_CR1_JEOCIE;
- // Set the register:
- ADC1->CR1 = value;
-
- // *** Control Register 2: CR2 ***
- value = 0;
- // [21:20] Set to 1, External trigger of injected channels triggered by positive edge.
- value |= ADC_CR2_JEXTEN_0;
- // Select the TIM1 TRGO and the external trigger:
- value |= ADC_CR2_JEXTSEL_0;
- // Set the register:
- ADC1->CR2 |= value;
-
- // *** ADC injected sequence register: JSQR ***
- value = 0;
- // [21:20] JL bits, set to 0 for 1 total conversions to take place
- //
- // [19:15] Convert CH16 first:
- value |= ADC_JSQR_JSQ1_4;
- // Save the register:
- ADC1->JSQR = value;
+ // Set the first (and only channel) to convert to CH16, the internal temperature sensor:
+ ADC1->SQR3 |= ADC_SQR3_SQ1_4;
// Set the sample numbers (making this bigger samples more slowly):
- ADC1->SMPR2 = ADC_SMPR2_SMP1_1 | ADC_SMPR2_SMP1_2;
+ ADC1->SMPR2 = ADC_SMPR1_SMP16_1 | ADC_SMPR1_SMP16_2; // Set for 144 ADC clock cycles
+ ADC1->SMPR2 = ADC_SMPR1_SMP18_1 | ADC_SMPR1_SMP18_2; // Set for 144 ADC clock cycles
INFO("ADC configuration complete!");
