Здравствуйте. Откопал в интернете вот такую программу для формирования однофазной синусоиды на STM32F100. Помогите разобраться с кодом программы!
http://catethysis.ru/stm32-tim-dma-pwm-sin/
Конкретно не понятно на сколько прямоугольных импульсов разбивается ШИМ. Автор задает параметр "steps". В пересчете из программы получается на 200 импульсов? Замерял осциллографом их количество - там явно меньше 200 импульсов. Про "precision"вроде как понял, что это частота дискретизации и равна она 1200. Только вот почему именно precision пихается в ARR и CCR счетчика TIM3? Почему в DMA подставляется steps, хотя по идее должен подставляться массив из вычисленных значений синуса из функции fill_sine. Буду благодарен за пошаговое объяснение всего цикла программы, так как в программировании я новичек!
Все началось с того. что мне понадобился трехфазный синус 220 вольт частотой 50 Гц для проверки терминалов релейной защиты. Вот хотелось бы переделать эту программу "под себя" и загнать ШИМ на схему полумоста на полевиках через драйвер IR2130.
В моем понимании программа работает так:
Прописываются дифайны -> создается переменная uint16_t с массивом чисел, число элементов массива равно steps --> с помощью функции fill_sine вычисляется массив синуса а проход по массиву задается переменной i -> настраиваем DMA (не понятно для чего прописаны строчки 4,5,6 в DMA) -> настраиваем счетчик TIM3, пихаем в ARR и CCR значения precision (что такое DBGMCU ? ))) - > настраиваем ножки контроллера для ШИМ - > настраиваем прерывания (с помощью переменных a и b осуществляется сдвиг двух каналов CCR счетчика на 90 градусов) - > крутимся в бесконечном цикле while.
Программа предназначена для управления мостом, но думаю переделать ее под полумост не проблема - всего то нужно удалить несколько строчек кода ))
Помогите разобраться с кодом программы
Кто любит RISC в жизни, заходим, не стесняемся.
- Реклама
Перейти
- Наш сайт
- ↳ Сувенирная лавка Кота
- ↳ О нашем сайте...
- ↳ Опросы, конкурсы...
- ↳ Статьи
- Устройства
- ↳ Аналоговая техника
- ↳ Усилители низкой частоты
- ↳ Радиотехника: приемники, передатчики, антенны
- ↳ АвтоМотоВело
- ↳ Цифровая техника
- ↳ Микроконтроллеры и ПЛИС
- ↳ Интеграция с ПК
- ↳ Умные мысли
- Силовая электроника
- ↳ Сварочное оборудование
- ↳ Питание
- ↳ Управление двигателями
- ↳ Индукционные нагреватели
- ↳ Прочая силовая электроника
- Микроконтроллеры и ПЛИС
- ↳ AVR
- ↳ ARM
- ↳ PIC
- ↳ ПЛИС
- ↳ Периферия
- ↳ Разные вопросы по МК
- ↳ Arduino
- Обучалка
- ↳ Теория
- ↳ Практика
- Технология
- ↳ Изготовление PCB
- ↳ Корпуса
- ↳ Измерения
- Ремонт
- ↳ Не слышно, не видно
- ↳ Не стирает, не готовит
- ↳ Ничего не работает
- ↳ Дохлые потаскунчики
- Посиделки у Кота
- ↳ Травим анекдоты
- ↳ Котоссылки
- ↳ Ищу...
- ↳ МЯЯЯУ!
- ↳ Чистилище
- Базар
- ↳ Куплю
- ↳ Продам
- ↳ Отдам-Обменяю
- ↳ Есть работа
- ↳ Ищу работу
- ↳ Базарные разговорчики