Skip to content

Commit fa03e3b

Browse files
committed
Add Observed things to opamp
1 parent 1e332f9 commit fa03e3b

File tree

2 files changed

+218
-325
lines changed

2 files changed

+218
-325
lines changed

examples/opamp.rs

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55

66
use stm32g4xx_hal::adc::AdcClaim;
77
use stm32g4xx_hal::adc::ClockSource;
8-
use stm32g4xx_hal::opamp::{Gain, InternalOutput};
8+
use stm32g4xx_hal::opamp::Gain;
99
use stm32g4xx_hal::prelude::*;
1010
use stm32g4xx_hal::pwr::PwrExt;
1111

@@ -34,12 +34,20 @@ fn main() -> ! {
3434
// setup opamps
3535
let (opamp1, opamp2, opamp3, ..) = dp.OPAMP.split(&mut rcc);
3636

37+
let pa1 = gpioa.pa1.into_analog();
38+
let pa2 = gpioa.pa2.into_analog();
39+
let pa7 = gpioa.pa7.into_analog();
40+
41+
let pb0 = gpiob.pb0.into_analog();
42+
let pb1 = gpiob.pb1.into_analog();
43+
let pb2 = gpiob.pb2.into_analog();
44+
3745
// Set up opamp1 and opamp2 in follower mode
38-
let opamp1 = opamp1.follower(gpioa.pa1, gpioa.pa2);
39-
let opamp2 = opamp2.follower(gpioa.pa7, InternalOutput);
46+
let opamp1 = opamp1.follower(pa1).enable_output(pa2);
47+
let opamp2 = opamp2.follower(pa7);
4048

4149
// Set up opamp1 and opamp2 in open loop mode
42-
let opamp3 = opamp3.open_loop(gpiob.pb0, gpiob.pb2, gpiob.pb1);
50+
let opamp3 = opamp3.open_loop(pb0, pb2).enable_output(pb1);
4351

4452
// disable opamps
4553
let (opamp1, pa1, pa2) = opamp1.disable();
@@ -48,18 +56,10 @@ fn main() -> ! {
4856
let (_opamp3, _pb0, _pb2, _pb1) = opamp3.disable();
4957

5058
// Configure opamp1 with pa1 as non-inverting input and set gain to x2
51-
let _opamp1 = opamp1.pga(
52-
pa1,
53-
pa2, // Route output to pin pa2
54-
Gain::Gain2,
55-
);
59+
let _opamp1 = opamp1.pga(pa1, Gain::Gain2).enable_output(pa2); // Route output to pin pa2
5660

5761
// Configure op with pa7 as non-inverting input and set gain to x4
58-
let opamp2 = opamp2.pga(
59-
pa7,
60-
InternalOutput, // Do not route output to any external pin, use internal AD instead
61-
Gain::Gain4,
62-
);
62+
let opamp2 = opamp2.pga(pa7, Gain::Gain4); // Do not route output to any external pin, use internal AD instead
6363

6464
// Lock opamp2. After the opamp is locked its registers cannot be written
6565
// until the device is reset (even if using unsafe register accesses).

0 commit comments

Comments
 (0)