У меня Arduino MEGA 2560, на котором выполняется эскиз FreeRTOS с использованием Arduino_FreeRtos. Кажется, все работает правильно, кроме функций vTaskDelay. Ниже приведена одна из областей, в которых у меня возникла проблема.
taskENTER_CRITICAL();
MOTORS[5].motor(1, 120);
MOTORS[6].motor(1, 127);
taskEXIT_CRITICAL();
vTaskDelay(pdMS_TO_TICKS(9000));
taskENTER_CRITICAL();
MOTORS[5].motor(1, 0);
MOTORS[6].motor(1, 0);
taskEXIT_CRITICAL();
Первая критическая секция задачи начинает движение моего двигателя вперед. Предполагается, что задержка составляет 9 секунд, а затем двигатель должен остановиться в критической секции второй задачи. На самом деле двигатель движется вперед примерно на 1 секунду, а затем останавливается.
У меня действительно включен INCLUDE_vTaskDelay в файле FreeRTOSConfig.h.
Что еще я могу посмотреть, чтобы попытаться выяснить, почему vTaskDelay не работает?
Ниже приведено определение часов. За комментарий, что часы могут быть не правильными. Я не могу расшифровать, если часы правильные или нет. Надеюсь, кто-то может указать, если этот параметр может быть причиной проблемы.