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

Выполнение кода с заданной периодичностью

15.02.2023, 13:49. Показов 1970. Ответов 34
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Приветствую, ответьте пожалуйста на вопрос.
Вопрос: Правильно ли я реализую выполнение некоторого кода каждые 10 микросекунд?



Пояснения:
Запутался в настройках таймера - привожу скрины в картинках.
в программе используются только прерываниея таймеров 2-100кГц и таймера 3 - 10Гц
частота ядра 50 Мгц, итерация главного цикла будет раз в 100 чаще происходить(или во сколько) чем прерывания таймера 100кГц
думаю пропусков не будет







C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
//прерывание таймера
void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim)
{
    if(htim->Instance == TIM2) //100кГц
        {
        if (t>0) t--;//выжидаем заданное число десятков микросекунд 
        }
}
 
 
 
//эта функция бесконечно вызывается в главном цикле
void func(...)
{
if (t > 0) return;//выжидаем заданное число десятков микросекунд
 
.....
t=1;//каждые 10 микросекунд
//если t=2; - то каждые 20 микросекунд
 
//сюда переходим каждые 10 микросекунд, за исключением первого присваивания t.
....некоторый код...
}
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
15.02.2023, 13:49
Ответы с готовыми решениями:

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

Отчет на СКД с заданной периодичностью
Всем привет! Платформа 1С:Предприятие 8.3, конфигурация редактированная типовая, режим управляемый. Делаю отчет на СКД с типом Таблица....

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

34
 Аватар для Worldmaster
323 / 190 / 45
Регистрация: 25.08.2011
Сообщений: 1,263
17.02.2023, 08:51
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от ValeryS Посмотреть сообщение
где ж ты боруна то увидел
Да просто я когда вижу на форумах про ошибки сообщения у меня сразу рефлекс срабатывает ))))
Ничего личного.


Цитата Сообщение от ValeryS Посмотреть сообщение
а вот за новый термин, спасибо
Мне кажется что термин древний как мир .. )
0
 Аватар для COKPOWEHEU
4144 / 2722 / 433
Регистрация: 09.09.2017
Сообщений: 12,055
17.02.2023, 09:09
Цитата Сообщение от ValeryS Посмотреть сообщение
Prescaller
прескалер
вот с одной л пишется или с двумя?
А кстати интересный вопрос: в даташите пишется prescaler и на русский переводится как "предделитель".
Но гуглопереводчик знает оба варианта написания. Причем prescaler он переводит как "прескалер" (что бы это ни значило), а prescaller - как предделитель. А хотя нет, для prescaler'а он вариант "предделитель" тоже знает, просто считает его менее употребимым.
Ну а "прескалер" у Worldmaster это, скорее всего, самодельная калька с английского. Стало быть, написание может варьироваться.
0
0 / 0 / 0
Регистрация: 15.02.2023
Сообщений: 83
17.02.2023, 12:11  [ТС]
Чувствую,что Worldmasterу хочется поспорить, не забанят ли на за это
Цитата Сообщение от Worldmaster Посмотреть сообщение
Для натуральной параллельности вам надо ПЛИС использовать а не МК.
windows же не система реального времени, а программы как-бы параллельно выполняются
для ненастоящей параллельности пойдет

Цитата Сообщение от Worldmaster Посмотреть сообщение
МК должен подбираться под задачу а не наоборот.
иногда бюджет или наличие кучи чипов, заставляют использовать МК какой есть

Цитата Сообщение от Worldmaster Посмотреть сообщение
Для IR передачи
Не понял что Вы имели ввиду, но я говорил про модули TSOP и когда на ножке нет прерывания и ножку поменять нельзя(не STM контроллер)

по поводу обработчиков прерываний, у меня такой подход
в обработчиках прерываний, устанавливаются только флаги событий
а обработка идет в главном цикле(согласен в некоторых задачах это не подходит)
но такой подход мне позволяет управлять приоритетом задач по своему - мне так понятнее

А в постановке задачи ошибки нет не сУмневайтесь.
Спасибо за помощь. Смотрим на мир шире.

переписываю проект с атмега на stm, у меня будут еще детские вопросы про ADC и GPIO
0
Эксперт по электронике
7144 / 3323 / 342
Регистрация: 28.10.2011
Сообщений: 13,101
Записей в блоге: 7
17.02.2023, 14:09
Цитата Сообщение от userstm2023 Посмотреть сообщение
работой с IR приемом
http://we.easyelectronics.ru/S... ast-1.html
0
274 / 206 / 30
Регистрация: 26.11.2022
Сообщений: 885
17.02.2023, 21:55
может надо сначала задачи описать - типа "приём сигналов IR"
а не "Выполнение кода с заданной периодичностью" - може задача вообще по другому решается
0
0 / 0 / 0
Регистрация: 15.02.2023
Сообщений: 83
20.02.2023, 06:35  [ТС]
Спасибо, но прием сигналов IR я привел для примера, я спрашивал про таймеры и их настройку
всё понятно , спасибо всем
0
28 / 24 / 4
Регистрация: 21.11.2017
Сообщений: 179
21.02.2023, 15:02
Цитата Сообщение от userstm2023 Посмотреть сообщение
если я переставляю тактирование RTC от внешнего кварца (точка в середине) то контроллер вообще не запускается
Как это посмотрели?
Надо смотреть отладчиком...
0
0 / 0 / 0
Регистрация: 15.02.2023
Сообщений: 83
27.02.2023, 13:50  [ТС]
Цитата Сообщение от CodeNameHawk Посмотреть сообщение
Как это посмотрели?
Думал тема закрылась, но раз Вы написали...
Как было дело:
Мигал светодиод в главном цикле, и мигал себе...
Тут я решил что планирую в будущем в проекте использовать встроенные часы,
гляжу - они по умолчанию тактируются от внутреннего генератора,
ну- ка думаю переставлю ка я точечку на тактирование от внешнего кварца 32768 (на плате он установлен, два конденсатора рядышком как обычно)
больше ничего не меняя в коде, переставляю точку LSE (смотри картинку 1), и всё мигать перестает, точку убираю как было от 32кГц внутреннего - цикл работает.
Потом я посмотрел при инициализации HAL на ошибки вроде уходит в бесконечный цикл..
вот и появился вопрос, как так может быть?
0
 Аватар для Worldmaster
323 / 190 / 45
Регистрация: 25.08.2011
Сообщений: 1,263
27.02.2023, 13:58
Цитата Сообщение от userstm2023 Посмотреть сообщение
(на плате он установлен, два конденсатора рядышком как обычно)
А подключен то правильно??
Схема платы есть?

Цитата Сообщение от userstm2023 Посмотреть сообщение
на ошибки вроде уходит в бесконечный цикл..
Потому что не смог запустить видимо таймер. Либо может кварц битый. осцилографом бы посмотреть.
0
28 / 24 / 4
Регистрация: 21.11.2017
Сообщений: 179
27.02.2023, 18:17
Цитата Сообщение от userstm2023 Посмотреть сообщение
Потом я посмотрел при инициализации HAL на ошибки вроде уходит в бесконечный цикл..
В каком конкретно месте?
Тут и надо искать проблему, или кварц не работает или что с кодом.
0
0 / 0 / 0
Регистрация: 15.02.2023
Сообщений: 83
01.03.2023, 12:13  [ТС]
Цитата Сообщение от CodeNameHawk Посмотреть сообщение
В каком конкретно месте?
вот тут напрмер

C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
/**
  * @brief  This function is executed in case of error occurrence.
  * @retval None
  */
void Error_Handler(void)
{
  /* USER CODE BEGIN Error_Handler_Debug */
  /* User can add his own implementation to report the HAL error return state */
  __disable_irq();
  while (1)
  {
  }
  /* USER CODE END Error_Handler_Debug */
}
0
28 / 24 / 4
Регистрация: 21.11.2017
Сообщений: 179
01.03.2023, 12:52
Цитата Сообщение от userstm2023 Посмотреть сообщение
вот тут напрмер
А с какого места сюда перешло?
0
0 / 0 / 0
Регистрация: 15.02.2023
Сообщений: 83
03.03.2023, 12:53  [ТС]
Цитата Сообщение от CodeNameHawk Посмотреть сообщение
А с какого места сюда перешло?
а вот например как раз инициализация часов
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
/**
  * @brief RTC Initialization Function
  * @param None
  * @retval None
  */
static void MX_RTC_Init(void)
{
 
  /* USER CODE BEGIN RTC_Init 0 */
 
  /* USER CODE END RTC_Init 0 */
 
  RTC_TimeTypeDef sTime = {0};
  RTC_DateTypeDef sDate = {0};
 
  /* USER CODE BEGIN RTC_Init 1 */
 
  /* USER CODE END RTC_Init 1 */
 
  /** Initialize RTC Only
  */
  hrtc.Instance = RTC;
  hrtc.Init.HourFormat = RTC_HOURFORMAT_24;
  hrtc.Init.AsynchPrediv = 127;
  hrtc.Init.SynchPrediv = 255;
  hrtc.Init.OutPut = RTC_OUTPUT_DISABLE;
  hrtc.Init.OutPutPolarity = RTC_OUTPUT_POLARITY_HIGH;
  hrtc.Init.OutPutType = RTC_OUTPUT_TYPE_OPENDRAIN;
  if (HAL_RTC_Init(&hrtc) != HAL_OK)
  {
    Error_Handler();
  }
получается что кварц дохлый что ли, куб же не может генерировать ошибочный код
0
 Аватар для Worldmaster
323 / 190 / 45
Регистрация: 25.08.2011
Сообщений: 1,263
03.03.2023, 13:29
Цитата Сообщение от userstm2023 Посмотреть сообщение
получается что кварц дохлый что ли
Так вам сразу говорилось

Цитата Сообщение от Worldmaster Посмотреть сообщение
Либо может кварц битый. осцилографом бы посмотреть.
0
28 / 24 / 4
Регистрация: 21.11.2017
Сообщений: 179
03.03.2023, 15:05
Цитата Сообщение от userstm2023 Посмотреть сообщение
получается что кварц дохлый
Питание в порядке.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
03.03.2023, 15:05

УПП 1.3. Формирование отчета по продажам (с заданной периодичностью)
Добрый день, Подскажите, пожалуйста, у меня есть запрос по регистру Продажи обороты, в итоге формируется таблица с данными по периодам,...

Удаление повторяющегося символа в строке с заданной периодичностью
Товарищи, ХЕЛП :help: В общем, само задание звучит так: Составить программу удаления из заданного текстового файла произвольной длины...

Как ускорить выполнение кода? (Получение цвета пикселя, сравнение и выполнение действия)
Всем привет. Нужна консультация экспертов) Программа такая. Есть пиксель на экране, в нем то появляется яркий цвет, то темный (лампочка...

XLL хранение и выполнение VBA кода, или защита VBA кода от просмотра
Мое почтение, джентльмены... Делал для себя инструмент позволяющий хранить уже наработанный VBA код и его исполнять из XLL. Немного...

Вычисления десятичного логарифма с заданной точностью (адаптация одного кода кода к другому)
Помогите пожалуйста нужно простенький код код адаптировать в сложный(т.к сам пробовал не считало) который нашёл в интернете. Нужно чтобы:...


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

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