summaryrefslogtreecommitdiff
path: root/tube-rotator
diff options
context:
space:
mode:
authorChristian Pointner <equinox@spreadspace.org>2014-05-20 04:02:33 +0200
committerChristian Pointner <equinox@spreadspace.org>2014-05-20 04:02:33 +0200
commit79a8c06cd5f5f8d6ad887a5ca71d4464523a43e1 (patch)
treeef801a725ca1bc07a02bed9799afc0e765711a15 /tube-rotator
parentbetter min/max values (diff)
added set speed in rpm
Diffstat (limited to 'tube-rotator')
-rw-r--r--tube-rotator/stepper.c9
-rw-r--r--tube-rotator/stepper.h4
-rw-r--r--tube-rotator/tube-rotator.c20
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)