Added timeout for stepper drivers
This commit is contained in:
@@ -10,6 +10,7 @@
|
|||||||
#define SM_B 1
|
#define SM_B 1
|
||||||
|
|
||||||
#define PULSE_PER_REV (1 / 3200.0)
|
#define PULSE_PER_REV (1 / 3200.0)
|
||||||
|
#define SPEED_SET_TIMEOUT 1000
|
||||||
//###############################################
|
//###############################################
|
||||||
|
|
||||||
//================ CONFIG ENCODERS =====================
|
//================ CONFIG ENCODERS =====================
|
||||||
|
|||||||
@@ -32,6 +32,7 @@ static double wheel_ratio_r = 1;
|
|||||||
static uint prev_time;
|
static uint prev_time;
|
||||||
static int prev_position_l = 0;
|
static int prev_position_l = 0;
|
||||||
static int prev_position_r = 0;
|
static int prev_position_r = 0;
|
||||||
|
static uint last_speed_change = 100;
|
||||||
|
|
||||||
|
|
||||||
static unsigned char stepper_instr[2+sizeof(double)*2] = {};
|
static unsigned char stepper_instr[2+sizeof(double)*2] = {};
|
||||||
@@ -212,6 +213,7 @@ void stepper_fifo(char c, uint8_t itf) {
|
|||||||
double vr = btod(stepper_instr + 10);
|
double vr = btod(stepper_instr + 10);
|
||||||
|
|
||||||
set_speeds(vl, vr);
|
set_speeds(vl, vr);
|
||||||
|
last_speed_change = SPEED_SET_TIMEOUT;
|
||||||
|
|
||||||
// tud_cdc_n_write(itf, (uint8_t const *) stepper_instr, 18);
|
// tud_cdc_n_write(itf, (uint8_t const *) stepper_instr, 18);
|
||||||
// tud_cdc_n_write_flush(itf);
|
// tud_cdc_n_write_flush(itf);
|
||||||
@@ -263,6 +265,10 @@ int main()
|
|||||||
|
|
||||||
|
|
||||||
while (true) {
|
while (true) {
|
||||||
|
if(last_speed_change--) {
|
||||||
|
set_speeds(0, 0);
|
||||||
|
last_speed_change = SPEED_SET_TIMEOUT;
|
||||||
|
}
|
||||||
tud_task();
|
tud_task();
|
||||||
sleep_ms(1);
|
sleep_ms(1);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user