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