From 79a8c06cd5f5f8d6ad887a5ca71d4464523a43e1 Mon Sep 17 00:00:00 2001 From: Christian Pointner Date: Tue, 20 May 2014 04:02:33 +0200 Subject: added set speed in rpm --- tube-rotator/stepper.c | 9 +++++++-- tube-rotator/stepper.h | 4 +++- tube-rotator/tube-rotator.c | 20 ++++++++++---------- 3 files changed, 20 insertions(+), 13 deletions(-) diff --git a/tube-rotator/stepper.c b/tube-rotator/stepper.c index 84bd666..3a08cd4 100644 --- a/tube-rotator/stepper.c +++ b/tube-rotator/stepper.c @@ -132,7 +132,12 @@ uint16_t stepper_get_speed(void) return target_speed; } -uint16_t stepper_get_speed_rpm(void) +void stepper_set_speed_rpm(uint8_t new_rpm) { - return (uint16_t)lround( ( (double)F_CPU / (double)(64.0 * 800.0 * (double)(target_speed + 1) ) ) * 60.0 ); + stepper_set_speed(( (uint16_t)( (double)(60.0 * F_CPU) / (double)(64.0 * 800.0 * (double)new_rpm) ) ) - 1); +} + +uint8_t stepper_get_speed_rpm(void) +{ + return (uint8_t)lround( ( (double)F_CPU / (double)(64.0 * 800.0 * (double)(target_speed + 1) ) ) * 60.0 ); } diff --git a/tube-rotator/stepper.h b/tube-rotator/stepper.h index 5f26fdf..a4c7557 100644 --- a/tube-rotator/stepper.h +++ b/tube-rotator/stepper.h @@ -46,6 +46,8 @@ void stepper_set_speed(uint16_t new_speed); void stepper_inc_speed(void); void stepper_dec_speed(void); uint16_t stepper_get_speed(void); -uint16_t stepper_get_speed_rpm(void); + +void stepper_set_speed_rpm(uint8_t new_rpm); +uint8_t stepper_get_speed_rpm(void); #endif diff --git a/tube-rotator/tube-rotator.c b/tube-rotator/tube-rotator.c index 88b2280..b1446b0 100644 --- a/tube-rotator/tube-rotator.c +++ b/tube-rotator/tube-rotator.c @@ -42,18 +42,18 @@ void handle_cmd(uint8_t cmd) case 's': stepper_stop(); led_off(); break; case '+': stepper_inc_speed(); break; case '-': stepper_dec_speed(); break; - case '2': stepper_set_speed(STEPPER_SPEED_20RPM); break; - case '3': stepper_set_speed(STEPPER_SPEED_30RPM); break; - case '4': stepper_set_speed(STEPPER_SPEED_40RPM); break; - case '5': stepper_set_speed(STEPPER_SPEED_50RPM); break; - case '6': stepper_set_speed(STEPPER_SPEED_60RPM); break; - case '7': stepper_set_speed(STEPPER_SPEED_70RPM); break; - case '8': stepper_set_speed(STEPPER_SPEED_80RPM); break; - case '9': stepper_set_speed(STEPPER_SPEED_90RPM); break; - case '0': stepper_set_speed(STEPPER_SPEED_100RPM); break; + case '2': stepper_set_speed_rpm(20); break; + case '3': stepper_set_speed_rpm(30); break; + case '4': stepper_set_speed_rpm(40); break; + case '5': stepper_set_speed_rpm(50); break; + case '6': stepper_set_speed_rpm(60); break; + case '7': stepper_set_speed_rpm(70); break; + case '8': stepper_set_speed_rpm(80); break; + case '9': stepper_set_speed_rpm(90); break; + case '0': stepper_set_speed_rpm(100); break; default: printf("Error(cmd): unknown command %02X '%c'\r\n", cmd, cmd); return; } - printf("target speed: %4d rpm\r", stepper_get_speed_rpm()); + printf("target speed: %3d rpm\r", stepper_get_speed_rpm()); } int main(void) -- cgit v1.2.3