void brain_ctrl(int16_t speed, int16_t dir) { if ((speed > 0) && front_blocked) { motor_stop(&mot); return; } if ((speed < 0) && back_blocked) { motor_stop(&mot); return; } brain_set_speed(speed); brain_steer(dir); }
void brain_ctrl(int16_t speed, int16_t dir) { printf("[brain] CTRL set speed %i and dir %i\n", speed, dir); if ((speed > 0) && front_blocked) { motor_stop(&mot); printf("[brain] CTRL FRONT BLOCKED\n"); return; } if ((speed < 0) && back_blocked) { motor_stop(&mot); printf("[brain] CTRL BACK BLOCKED\n"); return; } brain_set_speed(speed); brain_steer(dir); }
static int _speed(int argc, char **argv) { int16_t speed; if (argc < 2) { printf("usage: %s SPEED [-1024 to 1023]\n", argv[0]); return 1; } speed = (int16_t)atoi(argv[1]); if (speed < -0x03ff || speed > 0x03ff) { puts("speed value out of range\n"); return 1; } brain_set_speed(speed); return 0; }