zero648 писал(а):...тогда отключаем триак и останавливаем сам таймер, т.е. TCCR=0. И так для каждого полупериода.
Я говорил не о таком подходе.
У Вас : триак включается в начале полупериода, а выключается через некоторое время.
У меня : триак выключен в начале полупериода, включается через некоторое время. По достижении нуля триак и так сам выключится.
ibiza11 писал(а):Я говорил не о таком подходе.
У Вас : триак включается в начале полупериода, а выключается через некоторое время.
Триак включается не в начале полупериода, а в заданное время по таймеру, первый отсчет таймера устанавливает обработчик INT1, время импульса устанавливается в обработчике таймера.
ibiza11 писал(а):У меня : триак выключен в начале полупериода, включается через некоторое время. По достижении нуля триак и так сам выключится.
Триак не отключится по достижении нуля, если не снять сигнал.
Микросекундные задержки пока не убрал, времени не было, завтра уберу. Все это дело в принципе работает, но есть несколько замечаний:
1) Присутствует дрожание, небольшое но есть.
2) Нет максимальной яркости, визуально доходит процентов до 85-90, даже если переменная ch1 равна нулю, т.е. включение симистора происходит сразу.
Из-за чего это может быть? Подозреваю "кривое" детектирование перехода через 0, сейчас стоит резистор 1М., подключенный к INT0. Завтра соберу что-нибудь более существенное.
Последний раз редактировалось BARSik_ Чт дек 06, 2012 20:12:07, всего редактировалось 1 раз.
В моем алгоритме flag1 включается в прерывании INT, а выключается в первом входе в прерывание таймера. Таймер станавливает себя во втором входе, когда flag1 = 0. Почему у вас таймер останавливается при любом flag1?
zero648 писал(а):В моем алгоритме flag1 включается в прерывании INT, а выключается в первом входе в прерывание таймера. Таймер останавливает себя во втором входе, когда flag1 = 0. Почему у вас таймер останавливается при любом flag1?
В каком смысле - во втором входе в прерывание? Таймер же за один полупериод успевает войти в прерывание 100 раз. Xто-то я совсе запутался... Можете кусочком кода поделиться?