funktioniert ganz ok
This commit is contained in:
@@ -11,12 +11,14 @@ typedef struct {
|
|||||||
uint8_t home_pin;
|
uint8_t home_pin;
|
||||||
uint8_t homed:1;
|
uint8_t homed:1;
|
||||||
uint8_t trigger_step:1;
|
uint8_t trigger_step:1;
|
||||||
int16_t pos;
|
int32_t pos;
|
||||||
int16_t speed;
|
int32_t speed;
|
||||||
int16_t ramp_to_speed;
|
int32_t ramp_to_speed;
|
||||||
uint32_t next_step;
|
uint32_t next_step;
|
||||||
} stepper_T;
|
} stepper_T;
|
||||||
|
|
||||||
|
#define STEPPERS_MAX_SPEED 300
|
||||||
|
|
||||||
void Timer1_Init(void);
|
void Timer1_Init(void);
|
||||||
void stepper_gpio_init();
|
void stepper_gpio_init();
|
||||||
void do_steps();
|
void do_steps();
|
||||||
|
|||||||
2
Makefile
2
Makefile
@@ -22,7 +22,7 @@ TARGET = Parafraktor
|
|||||||
# debug build?
|
# debug build?
|
||||||
DEBUG = 1
|
DEBUG = 1
|
||||||
# optimization
|
# optimization
|
||||||
OPT = -Og
|
OPT = -O0
|
||||||
|
|
||||||
|
|
||||||
#######################################
|
#######################################
|
||||||
|
|||||||
@@ -89,10 +89,10 @@ void do_steps(){
|
|||||||
steppers[i].speed--;
|
steppers[i].speed--;
|
||||||
|
|
||||||
/* limit max speed */
|
/* limit max speed */
|
||||||
if(steppers[i].speed >= 100)
|
if(steppers[i].speed >= STEPPERS_MAX_SPEED)
|
||||||
steppers[i].speed=100;
|
steppers[i].speed=STEPPERS_MAX_SPEED;
|
||||||
if(steppers[i].speed <= -100)
|
if(steppers[i].speed <= -STEPPERS_MAX_SPEED)
|
||||||
steppers[i].speed=-100;
|
steppers[i].speed=-STEPPERS_MAX_SPEED;
|
||||||
|
|
||||||
/* get direction from sign */
|
/* get direction from sign */
|
||||||
if(steppers[i].speed>0)
|
if(steppers[i].speed>0)
|
||||||
@@ -122,16 +122,15 @@ void do_steps(){
|
|||||||
steppers[i].next_step = timer + 1;
|
steppers[i].next_step = timer + 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
printf("pos %d\tspeed %d\n", steppers[i].pos, steppers[i].speed);
|
printf("motor[%d]: pos %ld\tspeed %d\n", i, steppers[i].pos, steppers[i].speed);
|
||||||
}
|
}
|
||||||
|
|
||||||
if(steppers[i].homed){
|
if(steppers[i].homed){
|
||||||
static uint16_t old_ramp_to_speed;
|
static uint16_t old_ramp_to_speed;
|
||||||
old_ramp_to_speed = steppers[i].ramp_to_speed;
|
old_ramp_to_speed = steppers[i].ramp_to_speed;
|
||||||
|
|
||||||
uint16_t *p = (uint16_t*)&rxBuffer[1];
|
int32_t swapped_val = rxBuffer[2*i+1]<<8 | (rxBuffer[2*i+2]&0xFF);
|
||||||
|
steppers[i].ramp_to_speed = swapped_val - steppers[i].pos;
|
||||||
steppers[i].ramp_to_speed = __builtin_bswap16(*p) - steppers[i].pos;
|
|
||||||
|
|
||||||
if(old_ramp_to_speed == 0 && steppers[i].ramp_to_speed != 0)
|
if(old_ramp_to_speed == 0 && steppers[i].ramp_to_speed != 0)
|
||||||
steppers[i].trigger_step = 1;
|
steppers[i].trigger_step = 1;
|
||||||
|
|||||||
@@ -12,7 +12,7 @@
|
|||||||
-IDrivers/SystemView/Config
|
-IDrivers/SystemView/Config
|
||||||
-IDrivers/SystemView/SEGGER
|
-IDrivers/SystemView/SEGGER
|
||||||
-IDrivers/SystemView/SYSVIEW
|
-IDrivers/SystemView/SYSVIEW
|
||||||
-Og
|
-O0
|
||||||
-Wall
|
-Wall
|
||||||
-fdata-sections
|
-fdata-sections
|
||||||
-ffunction-sections
|
-ffunction-sections
|
||||||
|
|||||||
Reference in New Issue
Block a user