Так я в посте #758 про это и написал.
Вид для печати
Я так понял, что PWM_DW и PDM_DW - это совершенно разные вещи. PWM_DW - это классический ШИМ, а PDM_DW - это я не знаю что такое. Зачем вы на сайте Hardella сравниваете эти не сравнимые вещи. И названия этим ФБ дали похожие. Это сбивает с толку. Я с дуру ухватился за PDM_DW подумав, что это какой-то супер ШИМ от которого мне привалит много счастья. ;)
PDM это pulse density modulation: https://en.wikipedia.org/wiki/Pulse-density_modulation
В английской статье говорится, что PWM это частный случай PDM.
Есть про PDM упоминание и в русской статье про ШИМ:Цитата:
Pulse-width modulation (PWM) is a special case of PDM where the switching frequency is fixed and all the pulses corresponding to one sample are contiguous in the digital signal...
Цитата:
Высоким качеством обладает такая разновидность однобитной ИКМ, как импульсно-плотностная модуляция (pulse density modulation), которая ещё именуется импульсно-частотной модуляцией.
Добрый день.
Интересный документ представил Ветер. Владимир Ситников, вы не планируете реализовать что-то подобное (хотя бы часть инструкций) в своем проекте ? Ваш ФБ Steper работает хорошо. Было бы не плохо расширить возможности управления ШД.
Владимир, как можно оценить время исполнения программы для PRU ? Я так понимаю, что время исполнения программы для PRU должно обязательно укладываться в min cycle.
Можно:
1) выполнить её на эмуляторе.
2) грубо оценить -- умножить на 5нс количество команд в PRU коде. Т.е. заглянуть в программу ..._Pru0Init, найти там pruCode : ARRAY[1..557] и умножить размер массива на 5нс.
557*5нс = 2.785мкс. Это оценка сверху. Например, если выполнение пошло по одной из веток IF, то вторая, разумеется, не выполняется.
Можно придумать какой-нибудь механизм, чтобы в online можно было узнать сколько выполнялся пользовательский код. Минус в том, что он потребует какого-то регистра для хранения данных. С другой стороны, одного-двух байтов должно быть достаточно.