aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGrant Miller <[email protected]>2023-04-05 15:12:27 -0500
committerGrant Miller <[email protected]>2023-04-05 15:12:27 -0500
commitefd9e18321c258a188fa675804d59346a4c11cc2 (patch)
treeb58c19135a521d8c6ce43cbf1b6f082422542684
parentf5881054297713f6224d5d81f407f8a6cf591ef4 (diff)
Fix example
-rw-r--r--examples/stm32f0/src/bin/adc.rs15
1 files changed, 12 insertions, 3 deletions
diff --git a/examples/stm32f0/src/bin/adc.rs b/examples/stm32f0/src/bin/adc.rs
index 6205596f6..c639299d2 100644
--- a/examples/stm32f0/src/bin/adc.rs
+++ b/examples/stm32f0/src/bin/adc.rs
@@ -16,12 +16,21 @@ async fn main(_spawner: Spawner) {
16 let mut adc = Adc::new(p.ADC, &mut Delay); 16 let mut adc = Adc::new(p.ADC, &mut Delay);
17 adc.set_sample_time(SampleTime::Cycles71_5); 17 adc.set_sample_time(SampleTime::Cycles71_5);
18 let mut pin = p.PA1; 18 let mut pin = p.PA1;
19 let mut vref = adc.enable_temperature(&mut Delay); 19
20 let mut vrefint = adc.enable_vref(&mut Delay);
21 let vrefint_sample = adc.read_internal(&mut vrefint);
22 let convert_to_millivolts = |sample| {
23 // FIXME: use proper datasheet and value
24 // From http://www.st.com/resource/en/datasheet/CD00161566.pdf
25 // 5.3.4 Embedded reference voltage
26 const VREFINT_MV: u32 = 1200; // mV
27
28 (u32::from(sample) * VREFINT_MV / u32::from(vrefint_sample)) as u16
29 };
20 30
21 loop { 31 loop {
22 let v = adc.read(&mut pin); 32 let v = adc.read(&mut pin);
23 let r = adc.read_internal(&mut vref); 33 info!("--> {} - {} mV", v, convert_to_millivolts(v));
24 info!("--> {} - {} mV / vref = {} - {} mV", v, adc.to_millivolts(v), r, adc.to_millivolts(r));
25 Timer::after(Duration::from_millis(100)).await; 34 Timer::after(Duration::from_millis(100)).await;
26 } 35 }
27} 36}