summaryrefslogtreecommitdiff
path: root/tube-rotator
diff options
context:
space:
mode:
authorChristian Pointner <equinox@spreadspace.org>2014-05-19 02:01:08 +0200
committerChristian Pointner <equinox@spreadspace.org>2014-05-19 02:01:08 +0200
commitadc04cbabe0773835ef2c83d132502ef87ce5a62 (patch)
tree4a3db6da3097f87c487f0f985edc6869b92dbcb6 /tube-rotator
parentalso decreasing current speed (diff)
introduced some default speeds
Diffstat (limited to 'tube-rotator')
-rw-r--r--tube-rotator/stepper.c17
-rw-r--r--tube-rotator/stepper.h11
-rw-r--r--tube-rotator/tube-rotator.c25
3 files changed, 21 insertions, 32 deletions
diff --git a/tube-rotator/stepper.c b/tube-rotator/stepper.c
index 24ce37b..83b1026 100644
--- a/tube-rotator/stepper.c
+++ b/tube-rotator/stepper.c
@@ -27,13 +27,6 @@
uint8_t step_table [] =
{
- /* full steps */
- /* 6, // 0110 */
- /* 5, // 0101 */
- /* 9, // 1001 */
- /* 10, // 1010 */
-
- /* half steps */
2, // 0010
6, // 0110
4, // 0100
@@ -57,7 +50,7 @@ uint16_t current_speed;
void stepper_init(void)
{
- target_speed = STEPPER_DEFAULT_SPEED;
+ target_speed = STEPPER_SPEED_DEFAULT;
STEPPER_PORT &= ~(0xF << STEPPER_FIRST_BIT | 1<<STEPPER_ENABLE_A_BIT | 1<<STEPPER_ENABLE_B_BIT);
STEPPER_DDR |= (0xF << STEPPER_FIRST_BIT) | (1<<STEPPER_ENABLE_A_BIT) | (1<<STEPPER_ENABLE_B_BIT);
stepper_stop();
@@ -65,7 +58,7 @@ void stepper_init(void)
void stepper_start(void)
{
- current_speed = STEPPER_MIN_SPEED;
+ current_speed = STEPPER_SPEED_MIN;
STEPPER_PORT |= (1<<STEPPER_ENABLE_A_BIT) | (1<<STEPPER_ENABLE_B_BIT);
TCNT1 = 0;
OCR1A = current_speed;
@@ -104,16 +97,16 @@ ISR(TIMER1_COMPA_vect)
void stepper_set_speed(uint16_t new_speed)
{
- if(new_speed >= STEPPER_MIN_SPEED && new_speed <= STEPPER_MAX_SPEED)
+ if(new_speed >= STEPPER_SPEED_MIN && new_speed <= STEPPER_SPEED_MAX)
target_speed = new_speed;
}
void stepper_inc_speed(void)
{
- target_speed = (target_speed >= STEPPER_MAX_SPEED) ? target_speed : target_speed + 1;
+ target_speed = (target_speed >= STEPPER_SPEED_MAX) ? target_speed : target_speed + 1;
}
void stepper_dec_speed(void)
{
- target_speed = (target_speed <= STEPPER_MIN_SPEED) ? target_speed : target_speed - 1;
+ target_speed = (target_speed <= STEPPER_SPEED_MIN) ? target_speed : target_speed - 1;
}
diff --git a/tube-rotator/stepper.h b/tube-rotator/stepper.h
index ace7984..2e95736 100644
--- a/tube-rotator/stepper.h
+++ b/tube-rotator/stepper.h
@@ -23,9 +23,14 @@
#ifndef R3TUBE_stepper_h_INCLUDED
#define R3TUBE_stepper_h_INCLUDED
-#define STEPPER_MIN_SPEED 800
-#define STEPPER_DEFAULT_SPEED 200
-#define STEPPER_MAX_SPEED 80
+#define STEPPER_SPEED_MIN 500
+#define STEPPER_SPEED_MAX 80
+
+#define STEPPER_SPEED_60RPM 311
+#define STEPPER_SPEED_120RPM 155
+#define STEPPER_SPEED_180RPM 103
+
+#define STEPPER_SPEED_DEFAULT STEPPER_SPEED_120RPM
void stepper_init(void);
void stepper_start(void);
diff --git a/tube-rotator/tube-rotator.c b/tube-rotator/tube-rotator.c
index 0e8195f..de2bd49 100644
--- a/tube-rotator/tube-rotator.c
+++ b/tube-rotator/tube-rotator.c
@@ -37,23 +37,14 @@
void handle_cmd(uint8_t cmd)
{
switch(cmd) {
- case '!':
- reset2bootloader();
- break;
- case 'r':
- led_on();
- stepper_start();
- break;
- case 's':
- stepper_stop();
- led_off();
- break;
- case '+':
- stepper_inc_speed();
- break;
- case '-':
- stepper_dec_speed();
- break;
+ case '!': reset2bootloader(); break;
+ case 'r': led_on(); stepper_start(); break;
+ case 's': stepper_stop(); led_off(); break;
+ case '+': stepper_inc_speed(); break;
+ case '-': stepper_dec_speed(); break;
+ case '1': stepper_set_speed(STEPPER_SPEED_60RPM); break;
+ case '2': stepper_set_speed(STEPPER_SPEED_120RPM); break;
+ case '3': stepper_set_speed(STEPPER_SPEED_180RPM); break;
default: printf("Error(cmd): unknown command %02X '%c'\r\n", cmd, cmd); return;
}
}