|
1 / 1 / 0
Регистрация: 22.06.2016
Сообщений: 96
|
||||||
Генерация ШИМ для синусоиды STM32F10022.06.2016, 09:19. Показов 20516. Ответов 32
Здравствуйте, помогите новичку! До этого никогда не работал с МК, а тут начал с STM32F100 с наскоку.
Вот по одному из многочисленных уроков в инэте написал код и залил в МК.
В моем понимании задается некий массив со значениями синуса от 0 до 90 градусов, естественно пересчитанными в импульсы увеличивающейся длины. Все это загоняется на полевик IRL3705N. В CCRx можно записать "0". Счетчик (CNT) массив кушает до 90 градусов синуса, затем значения в CNT и ARR становятся одинаковыми. Счетчик сбрасывается в "0". Как его заставить считать в обратном порядке этот же самый массив? И куда записывать массив? Напрямую в TIMx_CNT ? TIM_Pulse уже не имеет значения и его можно удалять? В TIMx_ARR пихать максимальное значение при синусе 90 градусов? Пробовал такое сделать но не выходит.
0
|
||||||
| 22.06.2016, 09:19 | |
|
Ответы с готовыми решениями:
32
Объясните суть ШИМ на STM32F100
Генерация ШИМ |
|
Модератор
8982 / 6749 / 921
Регистрация: 14.02.2011
Сообщений: 23,876
|
||||||||||||||
| 25.06.2016, 10:14 | ||||||||||||||
крутимся в бесконечном циклетаймер у тебя отрабатывает с частотой 1 кГц(тики приходят) а загоняешь значения с частотой несколько МГц таймер просто не успевает обработать поставь для начала задержку в вечный цикл типа такой
правильно использовать еще один таймервот так надежней
0
|
||||||||||||||
|
1 / 1 / 0
Регистрация: 22.06.2016
Сообщений: 96
|
||||||
| 25.06.2016, 17:15 [ТС] | ||||||
На комментарии не обращайте внимания )))
0
|
||||||
|
Модератор
8982 / 6749 / 921
Регистрация: 14.02.2011
Сообщений: 23,876
|
|||||||
| 25.06.2016, 19:21 | |||||||
|
при такой записи обращение идет к элементу arr[5],которого нет, а что там в памяти лежит кто знает ![]()
0
|
|||||||
|
1 / 1 / 0
Регистрация: 22.06.2016
Сообщений: 96
|
||||||
| 26.06.2016, 09:57 [ТС] | ||||||
Что в этом случае должна делать задержка и почему именно 10 000 ? Что то не пойму. В такое число уменьшится частота значений, подаваемых в CCR2 ? Глянул на структурную схему таймера и понял вас. CNT тикает с частотой 1кГц а в CCR2 я пихаю все 24 МГц. Какая то каша творится - осциллограф мой сходит с ума! Возможно ли использовать в моей задаче системный таймер SysTick для прохода по массиву? Есть ссылка на пример использования - пытался разобраться, но для меня это пока потемки ))) http://we.easyelectronics.ru/S... 030f4.html
0
|
||||||
|
Модератор
8982 / 6749 / 921
Регистрация: 14.02.2011
Сообщений: 23,876
|
|||||||
| 26.06.2016, 10:14 | |||||||
|
то бишь пустой цикл на 10000 итераций что делает задержка, на этой строчке программа крутится десять тысяч раз и в результате обновление регистра таймера происходит в 10000 раз медленней ну и еще пожелание: почему бы не использовать для таймера те же библиотеки, как и для инициализации ножки заголовочный файл для таймеров "stm32f10x_tim.h", разумеется в проект нужно подключить "stm32f10x_tim.c" я на неё указывал у тебя массив из трех элементов arr[0] arr[1] arr[2], а t1 принимает 4 значения 0 1 2 3 пока разберись с таймером Добавлено через 1 минуту
0
|
|||||||
|
1 / 1 / 0
Регистрация: 22.06.2016
Сообщений: 96
|
|||
| 26.06.2016, 10:30 [ТС] | |||
0
|
|||
|
Модератор
8982 / 6749 / 921
Регистрация: 14.02.2011
Сообщений: 23,876
|
|||||||||||||
| 26.06.2016, 10:56 | |||||||||||||
|
нужно написать так
Добавлено через 2 минуты пардон, заметил ![]()
0
|
|||||||||||||
|
1 / 1 / 0
Регистрация: 22.06.2016
Сообщений: 96
|
|
| 26.06.2016, 11:23 [ТС] | |
|
Эхх что то не то происходит.
Вот показания осциллографа с i<7 - слева, i<10000 посередине и i<1 справа. Примерно на i<10 появляется просто череда импульсов по 50 мс длительностью
0
|
|
|
1 / 1 / 0
Регистрация: 22.06.2016
Сообщений: 96
|
||
| 26.06.2016, 11:27 [ТС] | ||
0
|
||
|
Модератор
8982 / 6749 / 921
Регистрация: 14.02.2011
Сообщений: 23,876
|
||
| 26.06.2016, 11:49 | ||
|
на средней фотке по моему ты просто не дожидаешься изменения скважности
0
|
||
|
1 / 1 / 0
Регистрация: 22.06.2016
Сообщений: 96
|
|
| 29.11.2018, 16:03 [ТС] | |
|
Эх, давно вопрос поднял, но проблема решена (хоть и коряво). Кому еще нужен код для формирования синуса? Там же и внешние потенциометры для регулирования амплитуды и фазы (для всех 3-х фаз)
0
|
|
|
0 / 0 / 0
Регистрация: 25.01.2019
Сообщений: 1
|
||||||||
| 25.01.2019, 16:23 | ||||||||
|
Vozz, Можно мне на почту кинуть код? Буду крайне благодарен! {del}
0
|
||||||||
|
1 / 1 / 0
Регистрация: 22.06.2016
Сообщений: 96
|
|
| 25.01.2019, 16:38 [ТС] | |
|
Да, конечно
Добавлено через 9 минут Как реально зальете, скажите симптомы ) Вроде припоминаю, что была разница по уровням напряжений на комплементарных выводах TIM1 ... Внешние потенциометры для регулирования напряжения я убрал, была идея управлять через программу-хост на компе
0
|
|
| 25.01.2019, 16:38 | |
|
Генерация ШИМ 30кГц на STM32 Генерация синусоиды с ЦАПа через DMA (ADuCM360) Генерация синусоиды Аппаратная генерация ШИМ-сигнала таймером в режиме phase-correct для управления сервоприводом (arduino uno)
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Запрет дублирования строк в табличной части
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, синий туман.
Синий туман назван так, потому что замораживает текст под собой. Нажатие синих кнопок управляют. . .
|
мат медиц модель 30. презентация проекта
anaschu 27.08.2026
хоп хоп хоп хидахоп, а я кладую))
|
Как у меня протекала болезнь
zorxor 27.08.2026
Здравствуйте, друзья! Эта запись блога предназначена именно для вас - для моих дорогих друзей, которые знали меня лично. Чтобы ответить на вопрос - а что же со мной произошло на самом деле? Я учился. . .
|