ESP32 (C++) использует как AccelStepper.runSpeed(), так и Audio.loop() (блокировка).C++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 ESP32 (C++) использует как AccelStepper.runSpeed(), так и Audio.loop() (блокировка).

Сообщение Anonymous »

В моем проекте ESP32 C++ я использую Audio.h и AccelStepper.h.
К сожалению, степпер не работает, когда звук активен. Похоже, Audio.loop() блокируется слишком долго.
Пример кода:

Код: Выделить всё

#include 
#include 

#define IN1 25
#define IN2 26
#define IN3 27
#define IN4 14

#define stepsPerRevolution  2048/60

AccelStepper motors[1] = {AccelStepper(AccelStepper::FULL4WIRE, IN1, IN3, IN2, IN4)};
Audio audio;

void setup()
{

// Some stuff to build up Wifi connection was removed here. Wifi is working.

motors[0].setMaxSpeed(stepsPerRevolution * 10); // 10 rpm
motors[0].setSpeed(stepsPerRevolution * 10);

audioController.connecttohost("https://stream.antenne.de/antenne/stream/mp3");

Serial.begin(115200);
}

void loop() {
motors[0].runSpeed();
audio.loop();
}
Каждый раз, когда я комментирую audio.loop(), шаговый двигатель движется правильно. Всякий раз, когда я использую audio.loop(), шаговый двигатель движется довольно медленно и нагревается.
Надеюсь на помощь. Спасибо

Подробнее здесь: https://stackoverflow.com/questions/787 ... p-blocking
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»