Вопрос по шиму

dim1230
Offline
Зарегистрирован: 13.03.2015

Всем привет.
Требуется шим с регулировкой частоты и скважности.
Управление 4-мя кнопками, (больше/меньше частота) и (больше/меньше скважность), шаг не важен, сам подстроюсь.

Главный сигнал 0.1 - 3 герца, сигнал заполнения 50 герц. Скважность привязана к частоте.

И собственно будет ли работать это, так как я задумал? Или можно проще организовать?
1. Подаем на Порт1 шим.
2. Порт1 соединен с Порт2.
3. Пока на Порт2(HIGH) Порт3 выдает 50 герц.

dim1230
Offline
Зарегистрирован: 13.03.2015

Ой, забыл...
arduino nano v3 - atmega328p

dimax
dimax аватар
Offline
Зарегистрирован: 25.12.2013

dim1230, что-то вы сложное намудрили. Можно на одном таймере. Он генерит 100 прерывываний в секунду, на каждом ныряя в свою ISR-функцию, в которой вы задаёте переменными счётчик сколько заходов подряд в функцию ничего не делать, и сколько заходов инвертировать ногу любого порта.  Соотношение эти двух величин будет одновременно и частота и скважность "главного" сигнала. А 50гц придётся подстраивать регистрами таймера. Возможны и другие варианты, может другие товарищи ещё что подскажут :)

dim1230
Offline
Зарегистрирован: 13.03.2015

dimax, спасибо, разобрался.
Теперь задача сделать 2 канала с независимой регулировкой, не подскажете в общих чертах, как?
В смысле, чтоб нажатие кнопок первого канала никак не влияло на работу второго.
 

dimax
dimax аватар
Offline
Зарегистрирован: 25.12.2013

dim1230, использовать ещё один таймер с аналогичными настройками :)