From 432b4552c36e62f0250b1dafa285bf16f638e793 Mon Sep 17 00:00:00 2001 From: Andy Killorin <37423245+Speedy6451@users.noreply.github.com> Date: Tue, 29 Oct 2024 11:15:25 -0400 Subject: [PATCH] change pwm to match talon sr spec --- inside/src/main.rs | 30 +++++++++++++----------------- 1 file changed, 13 insertions(+), 17 deletions(-) diff --git a/inside/src/main.rs b/inside/src/main.rs index ac9e6d7..d3e9ef8 100644 --- a/inside/src/main.rs +++ b/inside/src/main.rs @@ -70,11 +70,10 @@ async fn main(spawner: Spawner) { spawner.spawn(logger_task(driver)).unwrap(); let mut c: pwm::Config = Default::default(); - c.divider = 255.into(); - c.top = 8715; - c.compare_b = 7210; - c.compare_a = 2240; - let mut pwm = Pwm::new_output_ab(p.PWM_SLICE1, p.PIN_18, p.PIN_19, c.clone()); + c.divider = 40.into(); + c.top = 62_500; // 20ms + c.compare_b = 4687; // 1.5ms + let mut pwm = Pwm::new_output_b(p.PWM_SLICE0, p.PIN_1, c.clone()); let fw = include_bytes!("../../cyw43-firmware/43439A0.bin"); let clm = include_bytes!("../../cyw43-firmware/43439A0_clm.bin"); @@ -129,10 +128,10 @@ async fn main(spawner: Spawner) { socket.set_timeout(Some(Duration::from_secs(3))); let mut c: pwm::Config = Default::default(); - c.divider = 255.into(); - c.top = 8715; - c.compare_b = 0; - c.compare_a = 0; + c.divider = 40.into(); + c.top = 62_500; // 20ms + // 3125 counts per ms + c.compare_b = 4687; // 1.5ms pwm.set_config(&c); control.gpio_set(0, false).await; @@ -166,15 +165,12 @@ async fn main(spawner: Spawner) { match char::from_u32(segs.next().unwrap()[0] as u32).unwrap() { 'D' => { - let left: [u8;2] = hex::FromHex::from_hex(segs.next().unwrap()).unwrap(); - let right: [u8;2] = hex::FromHex::from_hex(segs.next().unwrap()).unwrap(); - info!("left {:?}, right {left:?}", right); + let pwr: [u8;2] = hex::FromHex::from_hex(segs.next().unwrap()).unwrap(); + info!("power {pwr:?}"); - let left = u16::from_be_bytes(left); - c.compare_a = left; - let right = u16::from_be_bytes(right); - c.compare_b = right; - info!("left {:?}, right {left:?}", right); + let pwr = u16::from_be_bytes(pwr); + c.compare_b = pwr; + info!("power {pwr:?}"); pwm.set_config(&c); }, _ => {}