Форум самогонщиков Сайт Барахолка Магазин Помощь солдатам

Как настроить аппаратный ШИМ на Atmega на 16-разрядном таймере 1?

Форум самогонщиков Вопросы по электр(он)ике
msg31 Научный сотрудник Барнаул 4.6K 2.5K
11 Окт. 13, 09:30
Доброе время суток, коллеги!
Делаю универсальный контроллер, на Atmega16, как часть его в нем есть модуль фазового регулятора мощности.
Сейчас это реализовано на программном уровне, рассчитываю угол открытия симистора, в Таймер 1 в компаратор А вношу это значение, в компаратор В вношу это же значение + 10. По прерыванию компаратора А, открываю симистор, по прерыванию компаратора В, закрываю. Все работает. Угол открытия симистора рассчитывается один раз в секунду. Так вот в момент расчета угла, видимо, прерывание немного запаздывает, и раз в секунду лампочка, подключенная к регулятору чуть моргает. Если поставить расчет угла открытия симистора раз в 5 секунд, моргает раз в 5 секунд.
Решил сделать аппаратный ШИМ, но не могу сообразить, как сделать его так, чтобы в число тиков таймера Х он подал сигнал на ножку, а во время Х+10, убрал его?
Подскажите, знатоки микроконтроллеров!
m16 Модератор Тамбов 1.9K 1K
Отв.1  16 Окт. 13, 21:07
перемудрил ты с алгоритмом. из твоего поста непонятна одна простая вещь -  есть ли у тебя  синхронизация с сетью? и её схемотехника интересует.
аппаратный шим нах не нужен, у меня мега16 на 11,59 мгц тянет фазовый регулятор + пид + кучу всякого без напряга.
msg31 Научный сотрудник Барнаул 4.6K 2.5K
Отв.2  16 Окт. 13, 22:40
перемудрил ты с алгоритмом. из твоего поста непонятна одна простая вещь -  есть ли у тебя  синхронизация с сетью? и её схемотехника интересует.
аппаратный шим нах не нужен, у меня мега16 на 11,59 мгц тянет фазовый регулятор + пид + кучу всякого без напряга.
m16, 16 Окт. 13, 21:07
Синхронизация с сетью есть. Схема стандартная, на этом сайте описанная, два резистора по 60к+диодный мост+оптрон. А с причиной задержки я разобрался. Дело оказалось не в расчете угла открытия симистора, а в опросе датчика ds18b20, который тоже выполняется раз в секунду. На время работы с однопроводной шиной приходится запрещать прерывания а опрос этот длится больше, чем длина полупериода, вот и не срабатывает то прерывание на открытие, то прерывание на закрытие симистора. И лампа произвольным образом помаргивает.
А в твоем контроллере используется ds18b20? И как реализован расчет угла открытия? Я готового алгоритма не нашел, пришлось придумывать.
Kotische Академик Саратов 8.1K 2.5K
Отв.3  17 Окт. 13, 00:10
Опрашивай ds18b20 через RS232-порт, тогда прерывания запрещать не придется, всё будет работать без замираний.
msg31 Научный сотрудник Барнаул 4.6K 2.5K
Отв.4  17 Окт. 13, 01:04, через 55 мин
Опрашивай ds18b20 через RS232-порт, тогда прерывания запрещать не придется, всё будет работать без замираний.
Kotische, 17 Окт. 13, 00:10
Спасибо за совет. Рад бы ему последовать, но занят у меня этот порт, я через него с компом и сотовым связываюсь...