From 33ddb0a4e90db661af7e63b25f3baf25815e70dc Mon Sep 17 00:00:00 2001 From: jakeg00dwin Date: Mon, 24 Feb 2025 17:31:30 -0800 Subject: [PATCH] Added a rampdown section to the speed. --- src/main.c | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) diff --git a/src/main.c b/src/main.c index 92aaaac..1d07564 100644 --- a/src/main.c +++ b/src/main.c @@ -142,11 +142,23 @@ void MotorMoveTo(uint8_t target) { uint8_t on_delay = ReadSpeed(); uint8_t pos = ReadFader(); + uint8_t delta = diff(target, pos); uint8_t idx = 0; - while (diff(target, pos) > 4) { - on_delay = ReadSpeed(); + while (delta > 0) { pos = ReadFader(); + delta = diff(target, pos); + + //Impliment a ramp down when near target position. + if(delta <= 6){ + //Ignore speed value and set for 50% speed. + on_delay = 127; + } + //Otherwise use the speed input. + else{ + on_delay = ReadSpeed(); + } + if (target > pos) { MotorMove(1); } else { @@ -161,6 +173,7 @@ void MotorMoveTo(uint8_t target) { for (; idx < 255; idx++) { _delay_us(MOTOR_PULSE); } + } return; @@ -271,7 +284,7 @@ static void UpdateButtonOutput(btn_state *b) { if (b->is_active) { /*If already in saved position then go back to original pos.*/ - if(diff(MotorGetSavedPos((uint8_t *)POSITION1_ADR), ReadFader()) < 4){ + if(diff(MotorGetSavedPos((uint8_t *)POSITION1_ADR), ReadFader()) <= 2){ MotorMoveTo(MotorGetSavedPos((uint8_t *)POSITION2_ADR)); } else{