Доработка кода на ASMе для AVR ATtiny2313 ШИМ с внешней синхронизацией

5 000 руб. за проект • безналичный расчёт, электронные деньги
27 марта 2018, 07:05 • 4 отклика • 31 просмотр
Есть код под Attiny2313 на асме с подробными комментами, который реализует некий вид модуляции по внешним прерываниям, суть которого заключается в выборке нужного количества импульсов из непрерывной последовательности в зависимости от установленного через уарт значения 0-100%, типа алгоритма Брезенхема, но не совсем. Вся последовательность это сигнал с внешнего генератора типа меандр, которая делится на пачки по 100 и в каждой пачке МК должен пропускать заданное число импульсов на выход, как раз от 0 до 100. Синхронизация сделана с использованием внешних прерываний от внешнего генератора подключенного на вход МК, в настройках счетчиков используется задний фронт каждого импульса, после которого принимается решение пропускать импульс следующий или нет. Выходные импульсы при этом короче чем входные, они используются в дальнейшей схеме уже как разрешающие для пропуска импульсов этого же меандра.
В данном проекте надо изменить принцип регулирования, суть которого будет заключаться в изменении скважности в зависимости от установленного через уарт значения. Т.е. в действующем коде это задание использовалось для пропуска определенного количества импульсов а в новом варианте это это будет заданием для ШИМ. Но ШИМ в данном случае тоже не совсем стандартный. Его скважность будет изменятся в диапазоне от 0 до 50% что будет соответствовать заданию 0-100% и при этом каждая половинка меандра будет изменяться независимо, с сохранением фронтов и с выводом положительной и отрицательного импульса на два выходных канала (пина МК) в виде положительных полупериодов этого меандра. В приложении есть поясняющая картинка. Внешний генератор будет так же подключен на вход МК, к тем же входам. Он будет задавать несущую частоту ШИМ, т.е. она не будет фиксированная, она будет меняться. И в соответствии с заданием полученным через уарт этот МК должен будет модулировать ширину импульсов на этой частоте. Т.е. счетчики для формирования несущей частоты ШИМа должны будут работать с изменяемым коэффициентом пересчета, ну и те счетчики что будут формировать скважность, они тоже как в классической реализации будут с изменяемым коэффициентом пересчета соответственно. Только единственный нюанс это
В общем задача не архи сложная, но интересная, по крайней мере это не дискретное преобразование Фурье на асме!Если ценник не устраивает можете свой предлагать но без фанатизма
Файлы