|
0 / 0 / 0
Регистрация: 08.09.2025
Сообщений: 1
|
||||||
STM реализация мигания светодиодом с разной скоростью через таймер08.09.2025, 15:51. Показов 3447. Ответов 61
Здравсвтвуйте, пытаюсь реализовать мигание светодиодом с разной скоростью через таймер на микроконтроллере STM32F401CDU6, но он мигает только с одной скоростью не меняя её. Написал такой код:
0
|
||||||
| 08.09.2025, 15:51 | |
|
Ответы с готовыми решениями:
61
Мигание светодиодов с разной скоростью и направлением STM 32L1Discovery. Реализовать переключение светодиодов с некоторой частотой ATmega128. Мигание светодиодом через таймер0 |
|
1182 / 458 / 68
Регистрация: 22.09.2023
Сообщений: 1,384
|
||
| 11.09.2025, 15:24 | ||
|
- Где тут собственно управление светодиодом? - Если Delay - это задержка, то зачем вообще TIM1? - Если TIM1 как-то формирует период - то как? Где это происходит? И зачем тогда задержка(?) Delay()? - что такое xxx?
0
|
||
|
|
|
| 11.09.2025, 15:30 | |
|
Dushevny, не корячьте из себя не пойми кого...
Я думаю вы просто докапываетесь..Очевидно же, что у таймера ТИМ1 настроено (должно быть) прерывание по переполнению, в котором тогглится светодиод. Задержка для того, чтобы автор зрительно узрел смену частот моргания светика. ххх - это желаемое время задержки перед очередной сменой частоты. Вы же не думаете что для такой фигни я буду открывать студию и писать код там? ![]() Написал прямо здесь, в редакторе форума..
0
|
|
|
Windows must die
|
|||||||||
| 11.09.2025, 17:59 | |||||||||
Добавлено через 1 минуту Добавлено через 57 секунд Потому что для начала привел бы элементарный минимальный код. Который написал бы руками, а не сгенерировал в калокубе!
0
|
|||||||||
|
|
|
| 11.09.2025, 18:01 | |
|
Eddy_Em, мне эти лекции зачем?
Я привел тупой простой пример, как менять регистр счета таймера в суперлупе. Вариантов может быть масса. Автор не просил ШИМ/DMA/SysTick и прочие штуки. Он про них пока даже не знает!
0
|
|
|
Windows must die
|
||
| 11.09.2025, 18:08 | ||
|
Блокирующие паузы (особенно длинней сотни-другой микросекунд) вообще не допустимы в коде, равно как и длительные блокирующие операции чтения/записи (например, считать килобайт по I2C на скорости 10кГц). Ты же прекрасно это знаешь! А зачем тогда пишешь? Чтобы ТС с ходу ардуинщиком стал?
0
|
||
|
|
|
| 11.09.2025, 18:12 | |
|
Eddy_Em, ему эти блокирующие паузы пока до лампочки. Пусть почувствует сперва как управлять таймером в рантайме, что происходит когда меняется то-то или вон то..
Очень не скоро он будет писать критические системы, где задержки неуместны. Он ведь не об этом спрашивает.. И да, ответ обычно должен быть равноценен вопросу. Если нужно мигать светиком, вряд ли стоит заботиться о задержках в цикле.
0
|
|
|
60 / 185 / 31
Регистрация: 14.02.2013
Сообщений: 1,668
|
|
| 11.09.2025, 18:26 | |
|
Eddy_Em, ТС только учится так что не надо умничать, когда то и вы были начинающим.
0
|
|
|
321 / 80 / 5
Регистрация: 19.07.2024
Сообщений: 441
|
||||
| 12.09.2025, 11:30 | ||||
|
Добавлено через 4 минуты А ещё забыли, что в вашем варианте всё равно нужно учитывать сколько полных периодов ШИМ-а прошло. Чтобы все длительности были одинаковой длительности, и не было обрывков. А значит - снова нужен ISR и работа в нём. Итого: вместо программной обработки в любом периодическом ISR через GPIO, получаем: инициализация таймера + отдельный ISR + код в ISR. И это почему-то вдруг стало "накладных расходов нет вообще". Добавлено через 4 минуты
1
|
||||
|
Windows must die
|
||||||
| 12.09.2025, 11:33 | ||||||
|
Сколько там тактов уходит в /dev/null, чтобы войти и выйти из обработчика? Добавлено через 1 минуту Привожу полную цитату:
0
|
||||||
|
321 / 80 / 5
Регистрация: 19.07.2024
Сообщений: 441
|
||
| 12.09.2025, 11:40 | ||
|
А с отдельным таймером нужно это всё добавить: инит + ISR + манипуляции с таймером в нём.
0
|
||
|
321 / 80 / 5
Регистрация: 19.07.2024
Сообщений: 441
|
|||
| 12.09.2025, 11:43 | |||
|
Если сами не телепортируются, то на вычисление их будут все те же самые накладные расходы, что и с ногодрыжным миганием. +инит и + отдельный ISR. Добавлено через 1 минуту
0
|
|||
|
Windows must die
|
||||
| 12.09.2025, 11:46 | ||||
|
Можно подумать, для настройки SysTick не нужно читать мануал (правда, не на МК, а на ядро). Добавлено через 2 минуты Еще раз: задумайся, сколько тактов уходит в мусорку элементарно на вход/выход из обработчика! Даже если в самом обработчике ты 2-3 такта посидишь…
0
|
||||
|
321 / 80 / 5
Регистрация: 19.07.2024
Сообщений: 441
|
||||||
| 12.09.2025, 11:53 | ||||||
|
А вашем варианте, да ещё если Огород получается знатный! Есть чем заняться, когда совсем нечего делать.... ![]() Ногодрыгом можно всеми 4-мя светиками в одном ISR без всяких надуманных ШИМ-ов мигать. Элементарно. И не нужно необоснованно усложнять элементарную задачу. Добавлено через 4 минуты Или "чукча не читатель"? Если прерывание уже есть, то добавление в него кода мигания добавляет ровно 0 дополнительных тактов на вход/выход.
0
|
||||||
|
|
||
| 12.09.2025, 11:58 | ||
|
Забавно наблюдать, как на простейший вопрос приходят "профи" и начинают: "да ты лох, делай вот так, ШИМ-ПИМ, тру-ля-ля, HAL выкидывай - это г... работай на регистрах и все такое..". И человек (ТС) сидит и не понимает что ему тут говорят и почему это надо делать так, а не вот так... Так можно в 5-6 класс прийти, например, и сказать школьникам: к чертям теорему Пифагора, давайте я вас интегралам научу! Думаю, эффект от этого понятен всем. Не по теме: А вообще, вокруг обычного мигания ногой такие баталии развели )) До чего дошел прогресс...
1
|
||
|
Windows must die
|
||||||
| 12.09.2025, 12:02 | ||||||
|
А вот для управления ШД - да, нужны. И меня совершенно не смущает, что приходится использовать восемь таймеров, чтобы рулить восемью шаговиками. По-другому просто невозможно будет добиться идеально ровных тактовых импульсов. Плохо лишь, что даже у "жирных" STM32 слишком мало таймеров с "концами наружу": энкодеры уже не к чему прилепить. Поэтому для реализации шаговиков с обратной связью приходится ограничиваться тремя-четырьмя на один МК. И этот человек будет называть меня новичком! Ну и да, если пользоваться SysTick, то в его прерывании будет лишь одно - инкремент счетчика. А уж в суперлупе будем себе спокойно проверять время, в течение которого каждый из светодиодов горит. Получаем эдакий "софтовый таймер". Таким образом, Добавлено через 1 минуту
0
|
||||||
|
321 / 80 / 5
Регистрация: 19.07.2024
Сообщений: 441
|
||
| 12.09.2025, 12:25 | ||
![]() Я слышал - мухи имеют очень быстрое зрение - им даже наши фильмы представляются просто набором медленно меняющихся кадров. Да, для мухов наверное действительно нужно дёргать светодиод десятки тыс. раз в секунду. Но у нас, человеков, зрение не настолько шустрое. Оно увы просто не увидит миганий светодиода с частотой десятки кГц! Хорошо бы хотя-бы сотые доли секунды разглядеть. И это-то не каждый осилит. Так что все мухи - слушайтесь Eddy_Em! он(она?) ведь о вас радеет. ![]() PS: Но мухам не понять человека. Как и человеку - мух. По разному мир видим.
0
|
||
| 12.09.2025, 12:25 | |
|
Помогаю со студенческими работами здесь
40
Мигание светодиодом на PIC. Организация задержки
Мигание светодиода по переполнению счетчика
Мигание светодиодом на ATMega8515 (Proteus) Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
||||
|
Музыка, написанная Искусственным Интеллектом
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
— Расскажи мне о Мире, бродяга,
Ты же видел моря и метели.
Как сменялись короны и стяги,
Как эпохи стрелою летели.
- Этот мир — это крылья и горы,
Снег и пламя, любовь и тревоги,
И бескрайние. . .
|
PowerShell Snippets
iNNOKENTIY21 11.11.2025
Модуль PowerShell 5. 1+ : Snippets. psm1
У меня модуль расположен в пользовательской папке модулей, по умолчанию: \Documents\WindowsPowerShell\Modules\Snippets\
А в самом низу файла-профиля. . .
|