Изменение времени тика в 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 мс. Я думаю, что форумы ссылаются на более раннюю версию.
@bheezy, 👍0
Обсуждение1 ответ
См. параметр конфигурации configTICK_RATE_HZ. Также обратите внимание, что время лучше указывать в миллисекундах, а не в тактах, чтобы вы могли изменить частоту тактов, не влияя на синхронизацию (кроме разрешения времени).
Для этой цели можно использовать макрос pdMS_TO_TICKS()
, например, для создания задержки в 100 мс.
const TickType_t xBlockTime = pdMS_TO_TICKS( 100 );
vTaskDelay( xBlockTime );
- устаревшее преобразование из строковой константы в 'char*'
- Какие есть другие IDE для Arduino?
- Esp8266 Vin контакт
- Плата для разработки STM8 с Arduino IDE
- Поскольку double и float представляют один и тот же тип данных (обычно), что предпочтительнее?
- Скрытие пароля WLAN при отправке на GitHub
- Как я могу прервать задержку() при нажатии кнопки?
- Что именно делает возвращаемый тип в функции?
см. [также](https://github.com/AndreiCherniaev/FreeRTOS_ATmega2560_MPLAB) этот порт FreeRTOS с F_CPU, @Андрей Тернити