Изменение времени тика в FreeRTOS

Я пытаюсь использовать функцию FreeRTOS vTaskDelay() для периодического выполнения задач. В последней версии FreeRTOS время «тика» было установлено на 15 мс. Следовательно, наименьшее разрешение, которое я могу задержать, составляет 15 мс. Я хотел бы понизить это разрешение хотя бы до 1 мс. Можно ли настроить FreeRTOS таким образом? I found this answer online : http://www.freertos.org/FreeRTOS_Support_Forum_Archive/November_2012/freertos_Problem_changing_Tick_time_from_1ms_to_10ms_6231539.html.

Но для меня configTICK_RATE_HZ не определен, и, похоже, он использует сторожевой таймер для обеспечения разрешения 15 мс. Я думаю, что форумы ссылаются на более раннюю версию.

, 👍0

Обсуждение

см. [также](https://github.com/AndreiCherniaev/FreeRTOS_ATmega2560_MPLAB) этот порт FreeRTOS с F_CPU, @Андрей Тернити


1 ответ


2

См. параметр конфигурации configTICK_RATE_HZ. Также обратите внимание, что время лучше указывать в миллисекундах, а не в тактах, чтобы вы могли изменить частоту тактов, не влияя на синхронизацию (кроме разрешения времени).

Для этой цели можно использовать макрос pdMS_TO_TICKS(), например, для создания задержки в 100 мс.

const TickType_t xBlockTime = pdMS_TO_TICKS( 100 );
vTaskDelay( xBlockTime );
,