sequence pwm remove disable fn for clarity, and disable peripheral on stop

This commit is contained in:
Jacob Rosenthal 2021-11-11 23:46:27 -07:00
parent b4cb24c735
commit 667a93b5c8

View File

@ -102,9 +102,6 @@ impl<'d, T: Instance> SequencePwm<'d, T> {
r.intenclr.write(|w| unsafe { w.bits(0xFFFF_FFFF) });
r.shorts.reset();
// Enable
r.enable.write(|w| w.enable().enabled());
r.seq0
.ptr
.write(|w| unsafe { w.bits(sequence.as_ptr() as u32) });
@ -208,6 +205,8 @@ impl<'d, T: Instance> SequencePwm<'d, T> {
pub fn stop(&self) {
let r = T::regs();
r.enable.write(|w| w.enable().disabled());
r.shorts.reset();
compiler_fence(Ordering::SeqCst);
@ -215,13 +214,6 @@ impl<'d, T: Instance> SequencePwm<'d, T> {
// tasks_stop() doesn't exist in all svds so write its bit instead
r.tasks_stop.write(|w| unsafe { w.bits(0x01) });
}
/// Disables the PWM generator.
#[inline(always)]
pub fn disable(&self) {
let r = T::regs();
r.enable.write(|w| w.enable().disabled());
}
}
impl<'a, T: Instance> Drop for SequencePwm<'a, T> {
@ -229,7 +221,6 @@ impl<'a, T: Instance> Drop for SequencePwm<'a, T> {
let r = T::regs();
self.stop();
self.disable();
if let Some(pin) = &self.ch0 {
pin.set_low();