1
Fork 0

tuned servo pwm parameters

This commit is contained in:
Andy Killorin 2024-05-14 13:37:36 -05:00
parent 23a014c024
commit 022e4317f2
Signed by: ank
GPG key ID: 23F9463ECB67FE8C

View file

@ -2,8 +2,10 @@ use arduino_hal::pac::tc1::OCR1B;
use arduino_hal::pac::tc1::OCR1A;
use arduino_hal::pac::TC1;
const MIN: u16 = 100; // *4us = .4ms
const MAX: u16 = 700; // *4us = 2.8ms
const CENTER: u16 = 375;
const RADIUS: u16 = 185;
const MIN: u16 = CENTER-RADIUS; // *4us
const MAX: u16 = CENTER+RADIUS; // *4us
const RANGE: u16 = MAX-MIN;
pub(crate) trait Servo {
@ -17,7 +19,7 @@ pub(crate) trait Servo {
#[inline(always)]
/// -1.0 full reverse, 1.0 full forward
fn calculate_duty(speed: f32) -> u16 {
pub fn calculate_duty(speed: f32) -> u16 {
let speed = speed / 2.0 + 0.5;
let duty = speed * RANGE as f32 + MIN as f32;
duty as u16