Страница 3 из 3

ШИИМ 10 БИТ пользовательский блока на Си

Добавлено: 28 янв 2024, 23:46
VNL64T
В целом плохая идея, особенно AVR. При росте проекта начнутся прболемы.
Переходите на другие платформы.
На RP2040 на втором ядре совсем хорошо такие задумки получаются. Недавно для одной локальной задачи генерил необходимую последовательность с частотой 300кгц. ШИМ наверное с частотой 150-200кГц получится.
Полностью согласен... :smile37:
Но.. аппаратный шим тем и хорош что работает минуя основной код, т.е. если код основной программы не будет залезать в установки шим на каждом цикле он должен справится без проблем, и примеров тому масса.. например моргать диодом а параллельно выполнять основной код с другими задачами.. по сути получается что шим использует только прерывания таймера не касаясь основной программы..
Из этого следует что он может, а вот незнание предмета т.е. языка есть преграда..

Может заодно подскажите программу на простом внятнографическом чтобы Raspberry Pi программировать?
Спасибо..

ШИИМ 10 БИТ пользовательский блока на Си

Добавлено: 29 янв 2024, 04:18
ecoins
VNL64T писал(а): 28 янв 2024, 23:46 Может заодно подскажите программу на простом внятнографическом чтобы Raspberry Pi программировать?
Спасибо..
Все тесты в теме "Экосреда ecoins" можно грузить в любой контроллер - ограничение только по памяти.

ШИИМ 10 БИТ пользовательский блока на Си

Добавлено: 29 янв 2024, 07:54
VNL64T
ecoins писал(а): 29 янв 2024, 04:18 Все тесты в теме "Экосреда ecoins" можно грузить в любой контроллер - ограничение только по памяти.
:smile37:

Если долго мучится? что-нибудь получится!
Шагами в любую сторону, градация и заполнения почти любые.. (тестировал на 50% заполнения..)
ATmega328p, 1 MHz просто для эксперимента (фронты чуть заваливает)

Для тех кто пойдет по моим стопам..
Редактирование блока- Параметры пользователя константа Pin_1 = изменяем значение по умолчанию на нужный (нам) ШИМ вывод (или убираем вовсе значение по умолчанию (там у автора ошибочная привязка к 9 пину..)
Далее в окне кода DeclareSelection изменяем строку на unsigned int P=0; (при заполнении 0 будет 0 )
все сохраняем..

Далее прежде чем сменить Период обязательно нужно блокировать Заполнение..
Т.е. на момент смены Периода Заполнение должно быть НОЛЬ!!! (Иначе не даст сменить Период)
После смены Периода с задержкой 5мс. возвращаем и Заполнение то что было или иное..


Всем спасибо.. особенно автору Блока!!! :yahoo:
Вижу что не сложный но в скобках весь попутался :fie: