summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristian Pointner <equinox@spreadspace.org>2014-05-20 03:13:40 +0200
committerChristian Pointner <equinox@spreadspace.org>2014-05-20 03:13:40 +0200
commit31686afee01d0fa0c94307897b8f7a33b2cf2244 (patch)
treea0cb2f5ba8f311154e83f526894dd28bf036c4b9
parentadded new speeds (diff)
added conversion from speed value to rpm
-rw-r--r--tube-rotator/stepper.c6
-rw-r--r--tube-rotator/stepper.h1
-rw-r--r--tube-rotator/tube-rotator.c2
3 files changed, 8 insertions, 1 deletions
diff --git a/tube-rotator/stepper.c b/tube-rotator/stepper.c
index 064db5a..a498b43 100644
--- a/tube-rotator/stepper.c
+++ b/tube-rotator/stepper.c
@@ -23,6 +23,7 @@
#include <avr/sfr_defs.h>
#include <avr/interrupt.h>
#include <util/atomic.h>
+#include <math.h>
#include "stepper.h"
@@ -125,3 +126,8 @@ uint16_t stepper_get_speed(void)
{
return target_speed;
}
+
+uint8_t stepper_get_speed_rpm(void)
+{
+ return (uint8_t)lround( ( (double)F_CPU / (double)(51200 * (target_speed + 1) ) ) * 60.0 );
+}
diff --git a/tube-rotator/stepper.h b/tube-rotator/stepper.h
index 8412782..e48be30 100644
--- a/tube-rotator/stepper.h
+++ b/tube-rotator/stepper.h
@@ -46,5 +46,6 @@ void stepper_set_speed(uint16_t new_speed);
void stepper_inc_speed(void);
void stepper_dec_speed(void);
uint16_t stepper_get_speed(void);
+uint8_t stepper_get_speed_rpm(void);
#endif
diff --git a/tube-rotator/tube-rotator.c b/tube-rotator/tube-rotator.c
index dbce87e..e0b0255 100644
--- a/tube-rotator/tube-rotator.c
+++ b/tube-rotator/tube-rotator.c
@@ -53,7 +53,7 @@ void handle_cmd(uint8_t cmd)
case '0': stepper_set_speed(STEPPER_SPEED_100RPM); break;
default: printf("Error(cmd): unknown command %02X '%c'\r\n", cmd, cmd); return;
}
- printf("current speed: %4d \r", stepper_get_speed());
+ printf("target speed: %3d rpm\r", stepper_get_speed_rpm());
}
int main(void)