реклама на сайте
подробности

 
 
> FreeRTOS - динамическое изменение тактовой частоты
1kvi1
сообщение Aug 14 2011, 08:47
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 36
Регистрация: 5-12-10
Пользователь №: 61 414



Добрый день!

Вопрос по freertos - как правильно реализовать динамическое изменение тактовой частоты и частоту смены задачи в STM32.

Интересует следующий момент - есть две задачи первая меняет по заданным событиям тактовую частоту, вторая мигает светодиодом. Период мигания задается функциями vTaskDelayUntil.

В общем задачу можно определить так - нужно стандартными механизмами системы обеспечивать временные интервалы при динамически меняющейся тактовой частоте.

Первая мысль которая приходит в голову - определить макросы configCPU_CLOCK_HZ и configTICK_RATE_HZ как переменные, при изменении тактового сигнала менять переменные и вызывать повторно prvSetupTimerInterrupt(), сбрасывать текущее значение счетчика системного таймера.

Устройство с батарейным питанием, большую часть времени спит. Диапазон тактовой частоты от 32кГц до 16МГц.
Не хотелось бы модифицировать исходники, может быть есть стандартное решение?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
1kvi1
сообщение Aug 16 2011, 03:16
Сообщение #2


Участник
*

Группа: Участник
Сообщений: 36
Регистрация: 5-12-10
Пользователь №: 61 414



Вариант с стабильной максимальной частотой и сном при простое - подходит для большинства задач.

Другое дело в следующей ситуации

устройство ждет нажатия кнопки и спит,
кнопку нажали - взвели флаг и снова спать,
кнопку отпустили - работаем

Зачем запускать осциллятор на 16 МГц чтобы взвести флаг? Ведь можно от внешнего часового кварца (уже есть и постоянно включен) работать и не тратить лишнего времени...

Операционная система тут не участвует - задача сама легла спать, сама проснулась - как Freertos'у сообщить что прошло уже 10 секунд, а не 10 милисекунд как она считает (тактовая частота была выключена), и что пора все задачи разбудить давно...

Уважаемые ГУРУ - есть вопрос - большая просьба - дайте на него ответ, не нужно спрашивать почему вопрос возник...
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 26th July 2025 - 01:24
Рейтинг@Mail.ru


Страница сгенерированна за 0.01383 секунд с 7
ELECTRONIX ©2004-2016