Added timeout for stepper drivers
This commit is contained in:
@@ -10,6 +10,7 @@
|
||||
#define SM_B 1
|
||||
|
||||
#define PULSE_PER_REV (1 / 3200.0)
|
||||
#define SPEED_SET_TIMEOUT 1000
|
||||
//###############################################
|
||||
|
||||
//================ CONFIG ENCODERS =====================
|
||||
|
||||
@@ -32,6 +32,7 @@ static double wheel_ratio_r = 1;
|
||||
static uint prev_time;
|
||||
static int prev_position_l = 0;
|
||||
static int prev_position_r = 0;
|
||||
static uint last_speed_change = 100;
|
||||
|
||||
|
||||
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);
|
||||
|
||||
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_flush(itf);
|
||||
@@ -263,6 +265,10 @@ int main()
|
||||
|
||||
|
||||
while (true) {
|
||||
if(last_speed_change--) {
|
||||
set_speeds(0, 0);
|
||||
last_speed_change = SPEED_SET_TIMEOUT;
|
||||
}
|
||||
tud_task();
|
||||
sleep_ms(1);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user