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

 
 
> 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
Ответов
zltigo
сообщение Aug 14 2011, 17:47
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



QUOTE (1kvi1 @ Aug 14 2011, 11:47) *
Устройство с батарейным питанием, большую часть времени спит. Диапазон тактовой частоты от 32кГц до 16МГц.
Не хотелось бы модифицировать исходники, может быть есть стандартное решение?

Ну и работайте всегда на 16Mhz а потом спите. Перед входом в спячку можете, конечно и тактовую сбросить. Но Работать всегда на полной. А во вторых, какая разница, какая тактовая - только системный таймер перепрограммируйте и все.


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Aug 14 2011, 18:28
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Цитата(zltigo @ Aug 14 2011, 21:47) *
какая разница, какая тактовая - только системный таймер перепрограммируйте и все.

Это в случае 1-16МГц можно было бы, а тут 32кГц снизу. Впрочем, случись мне экономить электричество, я бы в режиме 32кГц просто выключал бы ОС за ненадобностью.
Go to the top of the page
 
+Quote Post
zltigo
сообщение Aug 15 2011, 11:35
Сообщение #4


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



QUOTE (aaarrr @ Aug 14 2011, 20:28) *
Это в случае 1-16МГц можно было бы, а тут 32кГц снизу.

Разница, если, конечно, за системный тик контекст успеет переключиться ну и поработать еще немного sm.gif. Другое дело, что запускать систему на таких частотах крайне странно. Чем не утраивает сон на приличных мегагерцах - неведомо sad.gif.


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post



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

 


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


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