diff --git a/ch32v-insert-coin/src/main.rs b/ch32v-insert-coin/src/main.rs index 3f9e9ef..3ff6126 100644 --- a/ch32v-insert-coin/src/main.rs +++ b/ch32v-insert-coin/src/main.rs @@ -45,10 +45,17 @@ use adpcm_pwm_dac::{interface::DacInterface, dac::Dac}; impl DacInterface for SimplePwmDacPin<'_, T> where T: GeneralInstance16bit { fn write_amplitude(&mut self, amplitude: u8) { + if !self.pin.is_enabled(self.ch) { + self.pin.enable(self.ch); + } let max_duty = self.pin.get_max_duty(); let dc = amplitude as u32 * max_duty / 100; self.pin.set_duty(self.ch, dc); } + + fn disable(&mut self) { + self.pin.disable(self.ch); + } } fn blink(pin: AnyPin, interval_ms: u64) {