Форум программистов, компьютерный форум, киберфорум
Микроконтроллеры
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.59/41: Рейтинг темы: голосов - 41, средняя оценка - 4.59
1 / 1 / 1
Регистрация: 28.02.2013
Сообщений: 93

Перевод тиков FreeRTOS в миллисекунды

16.10.2014, 11:43. Показов 9608. Ответов 24
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день!

Пытаюсь перевести FreeRTOS'ные тики в миллисекунды - типа, реализация функции Sleep в миллисекундах, а не тиках.

C
1
2
3
4
void Sleep(int period_ms)
{
  vTaskDelay(period_ms  / portTICK_RATE_MS);
}
где
portTICK_RATE_MS == 1000 / configTICK_RATE_HZ
configTICK_RATE_HZ == 1000,
configSYSTICK_CLOCK_HZ == 168000000 (это тактовая частота Cortex-M4),
SysTick Reload Value Register (0xe000e014) == ( configSYSTICK_CLOCK_HZ / configTICK_RATE_HZ ) - 1UL

Формулу взял из коментариев к функции 'xTimerCreate' в FreeRTOS'ном коде:
* @param xTimerPeriodInTicks The timer period. The time is defined in tick periods so
* the constant portTICK_RATE_MS can be used to convert a time that has been
* specified in milliseconds. For example, if the timer must expire after 100
* ticks, then xTimerPeriodInTicks should be set to 100. Alternatively, if the timer
* must expire after 500ms, then xPeriod can be set to ( 500 / portTICK_RATE_MS )
* provided configTICK_RATE_HZ is less than or equal to 1000.

Замерял время по секундомеру на разных Sleep-периодах (10000, 15000, 20000 мс) - всегда приблизительно в 3 раза дольше получается.

И вопрос - как перевести тики в миллисекунды?
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
16.10.2014, 11:43
Ответы с готовыми решениями:

FreeRTOS на STM32F103 "медленные" миллисекунды.
Запустил FriiRTOS на STM32F103C8, 72MHz. Использую IAR. Хочу поморгать светодиодом с периодом 1с (0,5с - горит, 0,5с - не горит). Если...

Количество тиков таймера перевести в миллисекунды
как количество тиков таймера перевести в миллисекунды

Перевод часов в минуты, секунды, миллисекунды
Написать программу, которая в зависимости от выбранного номера и количества часов N переводила их в минуты, секунды, миллисекунды. ...

24
 Аватар для Voland_
1983 / 1276 / 131
Регистрация: 04.01.2010
Сообщений: 4,607
18.10.2014, 22:53
Студворк — интернет-сервис помощи студентам
ValeryS, в кортексе М3 есть как минимум тактовая частота HCI, а затем начинаются:
HCLK - частота конвеера и ЦПУ.
CLK1 - частота одной шины (куча периферии).
CLK2 - частота другой шины (вторая куча периферии).

При этом, IWDT (independent watchdog), SYSclock и т.н. backup-registers, которые цепляются к своему собственному источнику тактования, который, в свою очередь, тоже имеет три потенциальных источника - внутренний RC на 40кГц, внешний LFE (кварц с нуля до сотни кГц) и делимый на сколько-то генератор основной частоты. Эта часть работает асинхронно и в общем случае не синхронизирована с основным клоком.
Все клоки могут работать или быть остановлены, как врознь, так и сообща...
К слову, флеш в STM32 тоже работает на своей частоте, с делителем, зависящим от частоты HCLK.

Вопрос: так какую частоту нужно считать "частотой камня?"
1
Модератор
Эксперт по электронике
8982 / 6749 / 921
Регистрация: 14.02.2011
Сообщений: 23,875
18.10.2014, 23:07
Цитата Сообщение от Voland_ Посмотреть сообщение
так какую частоту нужно считать "частотой камня?"
А все
ну если по серьезному то ту которую использует FreeRTOS конкретно вот этот макрос
configSYSTICK_CLOCK_HZ
а вот откуда она берется и как запущена нужно смотреть функцию инициализации
2
1 / 1 / 1
Регистрация: 28.02.2013
Сообщений: 93
19.10.2014, 01:10  [ТС]
почему именно на 3???
- эмпирически вывел, я писал, что экспериментировал.

зачем вы работает с регистрами, когда у вас запускается ОСь? По идее она это все должна делать, и вы должны настроить клок ее собственными настройками
- так и пытаюсь делать.

т.е нужно знать частоту генератора (внешний, внутренний) и множители чтобы узнать частоту шины
Каким образом множители PLLM, PLLN, PLLp, PLLQ влияют на частоту тактирования?
В каком регистре хранится частота SysTick'а? Мне просто нужна она, а дальше я уже настрою тики FreeRTOS.
0
 Аватар для Voland_
1983 / 1276 / 131
Регистрация: 04.01.2010
Сообщений: 4,607
19.10.2014, 10:51
Цитата Сообщение от RRR_RRR_RRR Посмотреть сообщение
В каком регистре хранится частота SysTick'а?
да нет такого регистра... У вас должен быть инит этого клока, в котором указывается:
- источник тактования - внутренний, внешний или клок главного с делителем (на 256 или сколько-то там, это есть в ДШ).
- количество тактов клока источника, когда выполняется прерывание.
И все.
1
 Аватар для Витальич
1280 / 1185 / 175
Регистрация: 02.12.2013
Сообщений: 4,883
19.10.2014, 15:33
Цитата Сообщение от RRR_RRR_RRR Посмотреть сообщение
Каким образом множители PLLM, PLLN, PLLp, PLLQ влияют на частоту тактирования?
Я бы советовал воспользоватся бесплатной утилитой STM32CubeMX в ней Вы можете визуально задать параметры тактирования, настроить порты, таймеры итд. На выходе утилита генерит СИ код которым можно воспользоватся (это не для настоящих пацанов ) или посмотреть код настроечных функций.
Миниатюры
Перевод тиков FreeRTOS в миллисекунды   Перевод тиков FreeRTOS в миллисекунды  
3
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
19.10.2014, 15:33

Как перевести unix миллисекунды (unixtimestamp) в обычные миллисекунды?
У меня есть значение unix time, как его перевести в обычные миллисекунды? Есть такая математическая формула? Например это unix...

Кол-во тиков у таймера
Доброго времени суток, подскажите как посчитать количество тиков которые произвел таймер за время после включения , вариант получить время...

Сгенерировать uuid v1 из тиков даты
Есть тики некоторо даты, например `62135596800098765` как на их основании сгенерировать uuid v1 ? Есть ли в php готовые классы и библиотеки...

Определение тиков, затраченных на исполнение инструкций
Здравствуйте! Мне необходимо отладить код и для контроля версий кода мне нужно иметь производительность, достаточно будет измерить...

Скрыть часть меток тиков в matplotlib
У меня есть некий график, в котором очень много значений. Мне нужно убрать часть меток и их лэйблов с оси x, а некоторые оставить с...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
25
Ответ Создать тему
Новые блоги и статьи
Нейтральные знания, чистый код - бла-бла-бла-бла, на самом деле кликбейт и самореклама, плагиат, и вот почему
Hrethgir 27.07.2026
То-есть отклонение такой публикации говорит само за себя, и пусть только возьмут на вооружение после отклонения публикации - это будет чистейшим актом плагиата. Отклонял Хабр. Дословно, отклонённая. . .
тв 16 бой ии
anaschu 27.07.2026
Великий Перелом ИИ: Как уравнения ОДУ Radau дожали цензурные фильтры Алисы Фиксируем в мемофонде Теории Всего беспрецедентный факт в истории ИИ-зондирования. В затяжном многораундовом. . .
мв 15. непроверенное, возможно, глюк
anaschu 27.07.2026
НАУЧНО-АНАЛИТИЧЕСКИЙ ОТЧЕТ. РАЗДЕЛ 1. 1: «НАУКА» (РАСШИРЕННАЯ СТЕХИОМЕТРИЧЕСКАЯ И ГЕНЕТИЧЕСКАЯ ВЕРСИЯ)Тема: Теоретическое обоснование инвариантности 19-мерного тензорного ядра непрерывных ОДУ и. . .
Очистка реквизитов и табличных частей документа при копировании (вариант 2)
Maks 26.07.2026
Алгоритм из решения ниже разработан на примере нетипового документа "ЗаявкаНаРаботу", разработанного в КА2. Задача: Заменить алгоритм запрета копирования документов для сотрудников с ролью "Стажер",. . .
Доктрина интенционального знания - Доктрина для портала "Срез".
Hrethgir 25.07.2026
Может найдётся кто захочет оценить доктрину. . . Написания правил участия для меня роскошь, требующая лимита времени, поэтому все сообщения не прошедшие модерацию будут видны только участникам портала,. . .
сукцессия 44. Решил подать на припринт в межународные сервисы препринтов. Но нужно одобрение от ученых
anaschu 25.07.2026
Английский вариант. Пока кто то не одобрит мою личность, мне не получиться это опубликовать на препринте. Но заявку на публикацию статьи я сегодня подам.
сукцессия 43. Вторая научная статья за месяц- прайминг и гатгил
anaschu 25.07.2026
две стороны одной монеты
Более приземисто - Эстафету хвоста в .cdl (деревья эстафеты в сад).
Hrethgir 24.07.2026
В будущем, после написания блока инверсии обхода дерева (эстафеты хвоста), я планирую вернуться к нашему прошлому разговору о том, обладают ли знания целеполаганием. Тогда я пришел к выводу, что. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru