Добрый день, уважаемые пользователи форума! Всех с наступающим новым годом! Пишу программу для МК Atmega 8535, которая реализует одноканальную СИФУ тиристорным преобразователем, цель написания программы - освоение современной микропроцессорной техники, обучение, иначе говоря. Пишу на ассемблере. Возникло несколько вопросов, касающихся реализации формирования импульсов для тиристоров фаз А, В, С и сдвига 120 эл. градусов (схема трёхфазная нулевая, без реверса). Сеть имитирует генератор прямоугольных импульсов с частотой 50 Гц, синхронизация происходит по переднему фронту, в подпрограмме обработки прерывания (при переходе из 0 в 1) происходит перезапуск основного таймера (основным я назвал таймер, отвечающий за выработку импульса в фазе А, от которого отсчитываются остальные) в регистр сравнения которого записано некое значение нужного угла, как только таймер досчитает до этого значения, то произойдёт прерывание, в котором будет вырабатываться импульс фазы А, в этой же подпрограмме происходит запуск второго таймера, который вырабатывает импульс через 120 эл. градусов в фазе В. Кусочек кода, в котором это реализуется, приложен ниже.
1 вопрос: как реализовать 3 фазу, возможно ли реализация 3 импульса в фазе С так же перезапуском таймера, например, Т2, который отвечал за выработку импульса в фазе В. или есть какие-то более простые алгоритмы?
2 вопрос: см. картинку ниже.
P.S. программу отлаживал в протеусе, проверял работу на лабораторном стенде. Тот код, который у меня сейчас есть (с 2-мя фазами), вполне рабочий.
Вот то, что получилось в протеусе

2 вопрос
