|
|
|
@ -6,6 +6,7 @@
|
|
|
|
|
|
|
|
|
|
|
|
#include "SEGGER_SYSVIEW.h"
|
|
|
|
#include "SEGGER_SYSVIEW.h"
|
|
|
|
#include "uart_dmx.h"
|
|
|
|
#include "uart_dmx.h"
|
|
|
|
|
|
|
|
#include "mapping_table.h"
|
|
|
|
|
|
|
|
|
|
|
|
stepper_T steppers[] = {
|
|
|
|
stepper_T steppers[] = {
|
|
|
|
{.en_port=GPIOC, .en_pin=11, .dir_port=GPIOB, .dir_pin=4, .step_port=GPIOE, .step_pin=2, .home_port=GPIOF, .home_pin=3},
|
|
|
|
{.en_port=GPIOC, .en_pin=11, .dir_port=GPIOB, .dir_pin=4, .step_port=GPIOE, .step_pin=2, .home_port=GPIOF, .home_pin=3},
|
|
|
|
@ -43,6 +44,9 @@ void stepper_gpio_init(){
|
|
|
|
for(uint8_t i=0; i<(sizeof(steppers)/sizeof(stepper_T)); i++){
|
|
|
|
for(uint8_t i=0; i<(sizeof(steppers)/sizeof(stepper_T)); i++){
|
|
|
|
set_pins(&steppers[i]);
|
|
|
|
set_pins(&steppers[i]);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
steppers[0].homed = 1;
|
|
|
|
|
|
|
|
steppers[1].homed = 1;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void Timer1_Init(void) {
|
|
|
|
void Timer1_Init(void) {
|
|
|
|
@ -89,10 +93,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 >= STEPPER_SPEED_LIMIT)
|
|
|
|
steppers[i].speed=100;
|
|
|
|
steppers[i].speed=STEPPER_SPEED_LIMIT;
|
|
|
|
if(steppers[i].speed <= -100)
|
|
|
|
if(steppers[i].speed <= -STEPPER_SPEED_LIMIT)
|
|
|
|
steppers[i].speed=-100;
|
|
|
|
steppers[i].speed=-STEPPER_SPEED_LIMIT;
|
|
|
|
|
|
|
|
|
|
|
|
/* get direction from sign */
|
|
|
|
/* get direction from sign */
|
|
|
|
if(steppers[i].speed>0)
|
|
|
|
if(steppers[i].speed>0)
|
|
|
|
@ -128,7 +132,8 @@ void do_steps(){
|
|
|
|
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;
|
|
|
|
steppers[i].ramp_to_speed = rxBuffer[i+1] - steppers[i].pos;
|
|
|
|
motor_mapping_T* tmp = &(((fixture_mapping_T*)&rxBuffer[1])->channels[i]);
|
|
|
|
|
|
|
|
steppers[i].ramp_to_speed = tmp->tilt - 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;
|
|
|
|
|