Форум программистов, компьютерный форум, киберфорум
Микроконтроллеры ARM, Cortex, STM32
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.66/29: Рейтинг темы: голосов - 29, средняя оценка - 4.66
4 / 4 / 0
Регистрация: 12.11.2018
Сообщений: 511

Получить заданную тактовую частоту на пин мк

30.03.2021, 11:29. Показов 6545. Ответов 26

Студворк — интернет-сервис помощи студентам
Надо получить тактовую частоту на какой-нибудь выход мк, чтобы подать ее на микросхему. Желательно 10МГц, идеально, если бы это еще можно было как-то регулировать или задавать. Лишний кварц ставить не охото, поэтому пытаюсь что-то получить с мк. Частота микроконтроллера задается от кварца 8 МГц, через PLL мк работает на 200 МГц. Читал про Master Clock Output, но там, насколько я понял, довольно ограниченные возможности.
ШИМ по таймеру думаю не вариант, хотелось бы как-то более правильно это все сделать.
Плата stm32f746 nucleo.
Вопрос как это можно реализовать?
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
30.03.2021, 11:29
Ответы с готовыми решениями:

Получить тактовую частоту процессора
По этому поводу я уже создавал тему в разделе для начинающих (https://www.cyberforum.ru/delphi-beginners/thread982011.html), однако никто...

Получить текущую тактовую частоту процессора
В Интернете я нашёл данный код, задался целью понять, как он работает. Для этого изучил WinAPI функции, которые здесь имеются, и...

Влияние АЦП на тактовую частоту МК
Добрый день! Сделал термоконтроллер на amega88pa -- контроллер, таймер, часы для духовки. В процессе отладки столкнулся с тем, что...

26
 Аватар для Voland_
1983 / 1276 / 131
Регистрация: 04.01.2010
Сообщений: 4,607
08.04.2021, 19:02
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от DmitryDDDD Посмотреть сообщение
много времени
попробуйте выставить приоритет прерывания по-выше. Но... тут точно надо понимать, что это не поломает другие задачи
0
4 / 4 / 0
Регистрация: 12.11.2018
Сообщений: 511
09.04.2021, 16:48  [ТС]
Voland_, Там в целом по алгоритму работы все прерывния завязаны друг на друге, но только работают они последовательно, т.е. одно прерывание вызывает, например, запуск таймера, другое работу перефирии и т.д., но выполняются они последовательно. Нет ситуаций, когда может наступить два прерывания. Попробую, конечно, но мне кажется тут дело в другом, так как я пробовал из прерывания сразу управлять пином, и там уровень выставлялся за 4-5 микросекунд, против 50 мксек, если запускать сначала таймер. В кубе чем меньше указана цифра, тем выше приоритет, так?
Миниатюры
Получить заданную тактовую частоту на пин мк  
0
4 / 4 / 0
Регистрация: 12.11.2018
Сообщений: 511
10.04.2021, 09:15  [ТС]
Voland_, Изменение прерывания почему-то не помогло, хотел сначала повысить приоритет только у прерывания от таймера, но почему-то выше 5го не могу выставить. Поэтому понизил все остальные до 7го, таймер оставил 5го. Но эффекта не дало. Замерил саму процедуру запуска прерывания от таймера, там в районе 5 мксек, выставить уровень пина еще десятые доли мксек получилось, а где программа пропадает между этими двумя дейсвиями еще на 40 мксек пока не понятно
0
 Аватар для Voland_
1983 / 1276 / 131
Регистрация: 04.01.2010
Сообщений: 4,607
10.04.2021, 23:41
Цитата Сообщение от DmitryDDDD Посмотреть сообщение
еще на 40 мксек
Вы что-то делаете не так. Я не знаток HAL, но скажу, что вызов прерывания не может задерживаться на 40мксек при частоте процессора 200МГц. При такой частоте это 8000 тактов, так что даже при большом оверхеде из-за Wait-states for FLASH - такое количество тактов точно не относится к проблеме задержки вызова прерывания. Тут у вас скорее всего перегружено какое-то другое прерывание, которое вызывается все время. Возможно, где-то вы не сбрасываете его флаг, и оно в итоге вызывается все время - тут я не в курсе.
0
4 / 4 / 0
Регистрация: 12.11.2018
Сообщений: 511
12.04.2021, 07:24  [ТС]
Voland_, Отладкой прошелся, хоть я и не очень владею отладкой в cube ide, но заметил, что постоянно прерывается системным таймером TIM1, пока код пройдет от включения всех четырех каналов используемого мной таймера TIM4, системны таймер за это время прокрутится уже кучу раз со всем своим миллиардом проверок и кучей функций. Хотя FreeRTOS настроена на работу 1000 Гц, т.е. и прерывание системного таймера должно наступать раз 1 млсек

Добавлено через 28 минут
Voland_,
Функция, куда постоянно попадает отладчик
C
1
2
3
4
5
6
7
8
9
10
void TIM1_UP_TIM10_IRQHandler(void)
{
  /* USER CODE BEGIN TIM1_UP_TIM10_IRQn 0 */
 
  /* USER CODE END TIM1_UP_TIM10_IRQn 0 */
  HAL_TIM_IRQHandler(&htim1);
  /* USER CODE BEGIN TIM1_UP_TIM10_IRQn 1 */
 
  /* USER CODE END TIM1_UP_TIM10_IRQn 1 */
}
0
 Аватар для Voland_
1983 / 1276 / 131
Регистрация: 04.01.2010
Сообщений: 4,607
12.04.2021, 13:54
Цитата Сообщение от DmitryDDDD Посмотреть сообщение
попадает отладчик
как вариант, измените приоритет, либо запрещайте это прерывание, пока ожидаете другое прерывание, требующее минимальное время вызова.
0
4 / 4 / 0
Регистрация: 12.11.2018
Сообщений: 511
12.04.2021, 13:59  [ТС]
Voland_, Этот таймер заведен как системный, т.е. он отсчитывает частоту работы FreeRTOS, у него максимально высокий приоритет, который изменить нельзя. По идее он должен вызываться каждую миллисекунду и передавать кому-нибудь управление, кто стоит в очереди с наивысшим приоритетом.
Даже ради эксперимента добавил туда светодиод
C
1
2
3
4
5
6
7
8
9
10
void TIM1_UP_TIM10_IRQHandler(void)
{
  /* USER CODE BEGIN TIM1_UP_TIM10_IRQn 0 */
 
  /* USER CODE END TIM1_UP_TIM10_IRQn 0 */
  HAL_TIM_IRQHandler(&htim1);
  /* USER CODE BEGIN TIM1_UP_TIM10_IRQn 1 */
  HAL_GPIO_TogglePin(GPIOG, GPIO_PIN_4;         
  /* USER CODE END TIM1_UP_TIM10_IRQn 1 */
}
На логическом анализаторе светодиод моргает как раз раз в миллисекунду. Надо отдельную тему создать, пока не могу понять
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
12.04.2021, 13:59

Как поменять тактовую частоту?
Как поменять тактовую частоту не убив бутлоадер? Есть программатор AVRISP mkII

Найдите тактовую частоту процессора
Программа выполняется за 0,125 секунды на процессоре с 4 680 000 инструкциями и 3 циклами на инструкцию. Найдите тактовую частоту этого...

Процессор перестал повышать тактовую частоту
Так вот господа процессор перестал разгоняться при нагрузке(да и вообще он даже при включение пк держит частоту 2400 хотя начальная...

Программа на C++ генерирует тактовую частоту на lpt порт
Программа на C++ генерирует тактовую частоту на lpt порт. while(true){Out32(888,1);Out32(888,0);} Этот цикл выполняется 150000 раз в...

Программа которая определяет тактовую частоту процессора
Доброго времени суток. Прошу помочь с написанием задачки. Весь мой опыт в С не выходит за рамки введенных чисел и различными операциями с...


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

Или воспользуйтесь поиском по форуму:
27
Ответ Создать тему
Новые блоги и статьи
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#. Название изменил на ColorStep. Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами: - ВидТО (СправочникСсылка. ВидыТО); - ВидГСМ. . .
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр. Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала. Ниже прикреплён. . .
Программа опроса у.з. расходомера SLS-720F
Argus19 02.09.2026
Программа опроса у. з. расходомера SLS-720F Программа опрашивает один раз в минуту три ультразвуковых расходомера SLS-720F через интерфейс RS-485 по протоколу Modbus RTU. Опрашиваются регистры. . .
Hyper-V: Компьютер должен поддерживать доверенный платформенный модуль 2.0.
Maks 31.08.2026
При установке Windows 11 на виртуальную машину Hyper-V 2-го поколения вылезла такая ошибка: Решение: в параметрах виртуальной машины, в разделе "Безопасность" (Security) активировать флаг. . .
Архитектура биовида Стива в Майнкрафте: Зачем бонобо кубический каннибализм
anaschu 30.08.2026
Кубический Вагинокапитализм в Minecraft: Математический инвариант ОДУ и рок Стивов-бонобо Главная задача разработанной «Модели Всего» — наглядно продемонстрировать наличие системной «судьбы». . .
Оттачиваю умение писать js программы.
russiannick 30.08.2026
Проектом выходного дня стало написание Книги шифров Виженера. Итогом стала версия 200, синий туман. Синий туман назван так, потому что замораживает текст под собой. Нажатие синих кнопок управляют. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru