|
1 / 1 / 1
Регистрация: 28.02.2013
Сообщений: 93
|
||||||
Перевод тиков FreeRTOS в миллисекунды16.10.2014, 11:43. Показов 9110. Ответов 24
Метки нет (Все метки)
Добрый день!
Пытаюсь перевести FreeRTOS'ные тики в миллисекунды - типа, реализация функции Sleep в миллисекундах, а не тиках.
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
|
||||||
| 16.10.2014, 11:43 | |
|
Ответы с готовыми решениями:
24
FreeRTOS на STM32F103 "медленные" миллисекунды. Количество тиков таймера перевести в миллисекунды
|
|
1280 / 1185 / 175
Регистрация: 02.12.2013
Сообщений: 4,883
|
|
| 16.10.2014, 11:48 | |
|
C конкурирующего форума
Не по теме: Если вдруг кто-то с похожим столкнется - проблема решена)
1
|
|
|
1 / 1 / 1
Регистрация: 28.02.2013
Сообщений: 93
|
|
| 16.10.2014, 12:18 [ТС] | |
|
Спасибо. Но не помогло.
0
|
|
|
1983 / 1276 / 131
Регистрация: 04.01.2010
Сообщений: 4,607
|
||
| 16.10.2014, 14:58 | ||
|
0
|
||
|
1 / 1 / 1
Регистрация: 28.02.2013
Сообщений: 93
|
|
| 16.10.2014, 16:26 [ТС] | |
|
Нет, не уверен.
Прошу прощения за возможно глупый вопрос (я только недавно начал работать с "железом" и еще не все уложилось в голове) - а как проверяется на какую частоту настроен PLL и его канал?
0
|
|
|
1983 / 1276 / 131
Регистрация: 04.01.2010
Сообщений: 4,607
|
|
| 16.10.2014, 17:32 | |
|
RRR_RRR_RRR, читаете частоту из регистров клоков. В API также есть функция, отдающая структуру с частотой ЦПУ и частоты по шинам. По крайней мере, так в STM32F1xx. Думаю, F4 отличается в этом не сильно.
Добавлено через 2 минуты ...потом вам предстоит вычитать в доке по FreeRTOS (или глянуть в исходники) как именно (чем) она формирует задержки. Ставлю на то, что она считает с помощью RTC. Тогда надо глянуть еще чем тактуется он .
0
|
|
|
1 / 1 / 1
Регистрация: 28.02.2013
Сообщений: 93
|
|||||||||||||||||
| 17.10.2014, 12:37 [ТС] | |||||||||||||||||
|
Вообще, у меня сформировалось видение ситуации такое: Изначально во FreeRTOS'е задается максимальная тактовая частота (168MHz)
Вот вопросы 1) В какой момент времени частота уже понизилась? 2) Откуда взять уже пониженную тактовую частоту?
0
|
|||||||||||||||||
|
1983 / 1276 / 131
Регистрация: 04.01.2010
Сообщений: 4,607
|
|
| 17.10.2014, 12:50 | |
|
RRR_RRR_RRR, SysTickHandler работает на своей собственной частоте, либо от внутреннего генератора на 40кГц, либо внешнего (обычно 32768Гц), либо через делители от тактующего. Скорее всего первое у вас.
0
|
|
|
1 / 1 / 1
Регистрация: 28.02.2013
Сообщений: 93
|
||
| 17.10.2014, 13:08 [ТС] | ||
|
Я ориентируюсь вот на это
http://infocenter.arm.com/help... 02s03.html Там сказано:
0
|
||
|
1983 / 1276 / 131
Регистрация: 04.01.2010
Сообщений: 4,607
|
|||
| 17.10.2014, 13:24 | |||
|
Уточните какой контроллер вы программируете? Добавлено через 3 минуты ...просто у вас в первом посте было про М4
0
|
|||
|
1 / 1 / 1
Регистрация: 28.02.2013
Сообщений: 93
|
|||
| 17.10.2014, 13:55 [ТС] | |||
|
Для cortex-m4 программирую.
На том же сайте Cortex-M series processors => Cortex-M4 => Revision: r0p1 => ARM Cortex-M4 Processor Technical Reference Manual => System Control => Register summary там
0
|
|||
|
1983 / 1276 / 131
Регистрация: 04.01.2010
Сообщений: 4,607
|
|
| 17.10.2014, 15:44 | |
|
RRR_RRR_RRR, берите datasheet и reference manual на свой конкретный чип. И листайте.
Повторю вопрос - какой контроллер конкретно вы програмите? Вы же понимаете, что Cortex M4 - это ядро. И реализация базовых адресов, равно как и много периферии может существенно отличаться даже у одного и того же производителя? Для примера могу привести STM32, Cortex M3. В разных семействах этого контроллера USB реализован СОВЕРШЕННО по-разному. То есть ну вообще!. В описании же и там и сям пишут "USB", но и софт и API не совпадают аж никак. То же касается и если сравнить NXP, TI и STM32, если сравнивать настройки периферии. Соответственно, есть подозрение, что клок для RTC (он же systick_timer) может тактироваться на разных контроллерах по-разному.
0
|
|
|
1 / 1 / 1
Регистрация: 28.02.2013
Сообщений: 93
|
||||
| 17.10.2014, 20:46 [ТС] | ||||
Микроконтроллер - STM32, борда - STM32F407VGT6.
Я тут поэкспериментировал малость. Если прочитать из STRVR регистра значение, разделить его на 3 (число из первого поста) и записать обратно, то моя функция Sleep работает нормально - проверено по секундомеру.
0
|
||||
| 17.10.2014, 20:47 | |
|
Не по теме: Ставлю на STM32
0
|
|
|
1 / 1 / 1
Регистрация: 28.02.2013
Сообщений: 93
|
|
| 17.10.2014, 21:35 [ТС] | |
|
Не по теме: Ставлю на STM32 Это о чем речь?
0
|
|
|
Модератор
8978 / 6744 / 921
Регистрация: 14.02.2011
Сообщений: 23,852
|
|||
| 18.10.2014, 08:02 | |||
![]() есть файл FreeRTOSConfig.h в котором, самому ручками нужно, прописать все константы в зависимости от железа FreeRTOS портирован на 100500 платформ, и этот файл очень сильно отличается Добавлено через 4 минуты нужно знать от чего работает камень, если от внешнего то какова частота кварца потом коэффициент множителя ведь если к готовой схеме припаять кварц на 4 мГц вместо 8 то частота очень сильно изменится, несмотря на то, что софтверно все будет идентично
0
|
|||
|
1983 / 1276 / 131
Регистрация: 04.01.2010
Сообщений: 4,607
|
|
| 18.10.2014, 21:28 | |
|
ValeryS, ну, если задержка сделана на Systick timer, то частота PLL будет иметь к нему отношение только в том случае, если systick тактуется от нее. Если используется свой генератор внутренний LCI, либо внешний LCI, то нужно смотреть инициацию именно его.
RRR_RRR_RRR, зачем вы работает с регистрами, когда у вас запускается ОСь? По идее она это все должна делать, и вы должны настроить клок ее собственными настройками. Иначе есть риск что-то что-нибудь где-нибудь вылезет по частоте снова.
0
|
|
|
Модератор
8978 / 6744 / 921
Регистрация: 14.02.2011
Сообщений: 23,852
|
|||
| 18.10.2014, 22:22 | |||
|
чтобы узнать частоту шины и её прописывать в CORE_CLOCK а не брать готовый(чей то ) FreeRTOSConfig.h и верить что все пойдет идеально Добавлено через 4 минуты вот отсюда я начал знакомство с FreeRTOS может поможет кому нибудь http://microsin.net/programmin... part1.html вот здесь про настройку для СТМок http://microtechnics.ru/stm32-... s-chast-1/
0
|
|||
|
1983 / 1276 / 131
Регистрация: 04.01.2010
Сообщений: 4,607
|
||
| 18.10.2014, 22:37 | ||
. В данном контексте непонятно, что вы имели ввиду. А дfльнейшее рассуждение о внешнем кварце "на 4 или на 8МГц" указывает таки на высокочастотный источник тактования. Я же просто уточнил, что "камень" к systick-таймеру может и не иметь отношения. Если тактование последнего будет выполняться низкочастотным внешним или внутренним источником. Если вы слово "камень" использовали к Systick-таймеру, то я с вами согласен .
0
|
||
|
Модератор
8978 / 6744 / 921
Регистрация: 14.02.2011
Сообщений: 23,852
|
|||
| 18.10.2014, 22:44 | |||
|
привык я к нему ![]() т.е извиняюсь, если ввел в заблуждение
0
|
|||
| 18.10.2014, 22:44 | |
|
Помогаю со студенческими работами здесь
20
Как перевести unix миллисекунды (unixtimestamp) в обычные миллисекунды?
Сгенерировать uuid v1 из тиков даты
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
||||
|
Новый ноутбук
volvo 07.12.2025
Всем привет.
По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне:
Ryzen 5 7533HS
64 Gb DDR5
1Tb NVMe
16" Full HD Display
Win11 Pro
|
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
|
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
|
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов
На странице:
https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/
нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
|
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов.
. . .
|
|
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
|
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
|
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут.
В век Веб все очень привыкли к дизайну Single-Page-Application .
Быстренько разберем подход "на фреймах".
Мы делаем одну. . .
|
Фото: Daniel Greenwood
kumehtar 13.11.2025
|
Расскажи мне о Мире, бродяга
kumehtar 12.11.2025
— Расскажи мне о Мире, бродяга,
Ты же видел моря и метели.
Как сменялись короны и стяги,
Как эпохи стрелою летели.
- Этот мир — это крылья и горы,
Снег и пламя, любовь и тревоги,
И бескрайние. . .
|