я пытаюсь запустить в связке с ArduinoDue.
Пока что использую тестовую программу с последовательностью команд для 2 сервоприводов:
- Код: Выделить всё
SERVO.WritePos(1, 1023, 2000);
SERVO.WritePos(2, 1023, 2000);
delay(3000);
SERVO.WritePos(1, 20, 2000);
SERVO.WritePos(2, 20, 2000);
delay(3000);
и это работает глючно: работает только первый привод, второй не работает
если же добавить делей между командами
- Код: Выделить всё
SERVO.WritePos(1, 1023, 2000);
delay(10);
SERVO.WritePos(2, 1023, 2000);
delay(3000);
SERVO.WritePos(1, 20, 2000);
delay(10);
SERVO.WritePos(2, 20, 2000);
delay(3000);
то все работает как надо: обе привода синхронно двигаются (ну естественно с делеем 10 милисекунд, который на глаз не заметен)
если поставить delay от 1 до 9 милисекунд, то в принципе тоже работает, но чем он меньше, тем больше вероятность того, что какой-то из приводов пропустит свое движение
соединение у меня 1000000 бод
вопрос: можно ли заставить все команды выполняться без делея между ними? или хотя бы с минимально возможным?
например такой код не помогает:
- Код: Выделить всё
while (!Serial2.available()) {
delay(1);
}