use crate::*;
pub struct AnalogPin<'a> {
avr: &'a mut AvrTester,
pin: u32,
}
impl<'a> AnalogPin<'a> {
pub(crate) fn new(avr: &'a mut AvrTester, pin: u32) -> Self {
Self { avr, pin }
}
pub fn set_mv(&mut self, voltage: u32) {
self.avr.sim().set_analog_pin(self.pin as _, voltage);
}
}
pub struct AnalogPinAsync {
pin: u32,
}
impl AnalogPinAsync {
pub(crate) fn new(pin: u32) -> Self {
Self { pin }
}
pub fn set_mv(&self, voltage: u32) {
ComponentRuntime::with(|rt| {
rt.sim().set_analog_pin(self.pin as _, voltage);
});
}
}