Re: Програмирование pic на СИ.
Добавлено: Вт мар 10, 2026 08:39:37
[uquote="igorg1",url="/forum/viewtopic.php?p=4796057#p4796057"]вопрос к ГУРУ следующий - пока читаю и загружаю в ШИМ новое значение - что с выводом ШИМа будет??? - в каком состоянии?[/uquote]
Ты меня канешна извини, но почему ты все делаешь через жопу?
Ты даташит на МК хоть раз открывал?
Как ты думаешь, что выделенное на скрине обозначает?

[uquote="igorg1",url="/forum/viewtopic.php?p=4796057#p4796057"]командный цикл - 250 наносекунды. Сколько циклов я буду заходить в прерывание, затем читать с таблицы, затем загружать в ШИМ???[/uquote]
Дадада, именно поэтому тебе взбрело в голову сделать ШИМ 10 битным. Ты прям мечтаешь увеличить время загрузки. Чем больше, тем лучше...
[uquote="igorg1",url="/forum/viewtopic.php?p=4796057#p4796057"]Зачем NCO...?
И как ты ШИМ в прерывании по NCO будешь менять??? По таблице???? ЗАЧЕМ??? Если по прерыванию таймера сразу по таблице прочитаю новое значение...[/uquote]
NCO позволяет легко получить любую частоту с мелким шагом - это ядро любого DDS.
NCO тактируется напрямую от осциллятора, то есть не создает проблем при взаимодействии с PWM.
Некоторая паразитная ЧМ при прямом цифровом синтезе сигнала для твоего применения не имеет никакого значения.
NCO В НАШЕМ СЛУЧАЕ синтезирует не сигнал, а частоту отсчетов. То есть расчетная выходная частота NCO должна быть в число отсчетов за период сигнала раз выше, чем частота синтезируемого сигнала. Количество периодов ШИМ между отсчетами может быть разным и чем их больше, тем лучше - тем меньше паразитная ЧМ.
Но если тебе нравится каждый отсчет генерировать каждый период ШИМ - не применяй NCO. Правда тогда сетка частот будет убогой.
[uquote="igorg1",url="/forum/viewtopic.php?p=4796222#p4796222"]очень корявая синусоида получится[/uquote]
Игорёк, я чего то не понял...
А причем тут ОУ. Синусоиду ты получишь сразу после ФНЧ, который должен находится между МК и ОУ. На ОУ подавать ШИМ не нужно. Это так не работает.
Ты меня канешна извини, но почему ты все делаешь через жопу?
Ты даташит на МК хоть раз открывал?
Как ты думаешь, что выделенное на скрине обозначает?
[uquote="igorg1",url="/forum/viewtopic.php?p=4796057#p4796057"]командный цикл - 250 наносекунды. Сколько циклов я буду заходить в прерывание, затем читать с таблицы, затем загружать в ШИМ???[/uquote]
Дадада, именно поэтому тебе взбрело в голову сделать ШИМ 10 битным. Ты прям мечтаешь увеличить время загрузки. Чем больше, тем лучше...
[uquote="igorg1",url="/forum/viewtopic.php?p=4796057#p4796057"]Зачем NCO...?
И как ты ШИМ в прерывании по NCO будешь менять??? По таблице???? ЗАЧЕМ??? Если по прерыванию таймера сразу по таблице прочитаю новое значение...[/uquote]
NCO позволяет легко получить любую частоту с мелким шагом - это ядро любого DDS.
NCO тактируется напрямую от осциллятора, то есть не создает проблем при взаимодействии с PWM.
Некоторая паразитная ЧМ при прямом цифровом синтезе сигнала для твоего применения не имеет никакого значения.
NCO В НАШЕМ СЛУЧАЕ синтезирует не сигнал, а частоту отсчетов. То есть расчетная выходная частота NCO должна быть в число отсчетов за период сигнала раз выше, чем частота синтезируемого сигнала. Количество периодов ШИМ между отсчетами может быть разным и чем их больше, тем лучше - тем меньше паразитная ЧМ.
Но если тебе нравится каждый отсчет генерировать каждый период ШИМ - не применяй NCO. Правда тогда сетка частот будет убогой.
[uquote="igorg1",url="/forum/viewtopic.php?p=4796222#p4796222"]очень корявая синусоида получится[/uquote]
Игорёк, я чего то не понял...
А причем тут ОУ. Синусоиду ты получишь сразу после ФНЧ, который должен находится между МК и ОУ. На ОУ подавать ШИМ не нужно. Это так не работает.