From 62a37286acb84442b9fd2c663b3292caa7ea0c88 Mon Sep 17 00:00:00 2001 From: David Stalnaker Date: Tue, 20 Feb 2024 23:21:57 -0800 Subject: [PATCH] Add internal DAC outputs to available opamp inputs. This is done by adding internal structs for the DAC outputs and passing these into the constructor functions instead of an input pin, e.g. `opamp1.follower(Dac3Out1, Some(gpioa.pa2.into_analog()));` --- src/opamp.rs | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/src/opamp.rs b/src/opamp.rs index ef2c2880..59f5cc36 100644 --- a/src/opamp.rs +++ b/src/opamp.rs @@ -96,6 +96,18 @@ pub enum NonInvertingGain { Gain64 = 5, } +/// Internal output of DAC 3 channel 1. +pub struct Dac3Out1; + +/// Internal output of DAC 3 channel 2. +pub struct Dac3Out2; + +/// Internal output of DAC 4 channel 1. +pub struct Dac4Out1; + +/// Internal output of DAC 4 channel 2. +pub struct Dac4Out2; + macro_rules! opamps { { $( @@ -557,6 +569,7 @@ opamps! { crate::gpio::gpioa::PA1: vinp0, crate::gpio::gpioa::PA3: vinp1, crate::gpio::gpioa::PA7: vinp2, + crate::opamp::Dac3Out1: dac3_ch1, }, output: crate::gpio::gpioa::PA2, }, @@ -584,6 +597,7 @@ opamps! { crate::gpio::gpiob::PB0: vinp0, crate::gpio::gpiob::PB13: vinp1, crate::gpio::gpioa::PA1: vinp2, + crate::opamp::Dac3Out2: dac3_ch2, }, output: crate::gpio::gpiob::PB1, }, @@ -606,6 +620,7 @@ opamps! { crate::gpio::gpioa::PA1: vinp0, crate::gpio::gpioa::PA3: vinp1, crate::gpio::gpioa::PA7: vinp2, + crate::opamp::Dac3Out1: dac3_ch1, }, output: crate::gpio::gpioa::PA2, }, @@ -633,6 +648,7 @@ opamps! { crate::gpio::gpiob::PB0: vinp0, crate::gpio::gpiob::PB13: vinp1, crate::gpio::gpioa::PA1: vinp2, + crate::opamp::Dac3Out2: dac3_ch2, }, output: crate::gpio::gpiob::PB1, }, @@ -646,6 +662,7 @@ opamps! { crate::gpio::gpiob::PB13: vinp0, crate::gpio::gpiod::PD11: vinp1, crate::gpio::gpiob::PB11: vinp2, + crate::opamp::Dac4Out1: dac4_ch1, }, output: crate::gpio::gpiob::PB12, }, @@ -659,6 +676,7 @@ opamps! { crate::gpio::gpiob::PB14: vinp0, crate::gpio::gpiod::PD12: vinp1, crate::gpio::gpioc::PC3: vinp2, + crate::opamp::Dac4Out2: dac4_ch2, }, output: crate::gpio::gpioa::PA8, }, @@ -672,6 +690,7 @@ opamps! { crate::gpio::gpiob::PB12: vinp0, crate::gpio::gpiod::PD9: vinp1, crate::gpio::gpiob::PB13: vinp2, + crate::opamp::Dac3Out1: dac3_ch1, }, output: crate::gpio::gpiob::PB11, },