Генерация Импульсов С Двух Таймеров С Задаваемым Сдвигом

18-09-2013, 13:19 От: admin Посмотрели: 652
Доброго времени суток. имеются 2 16-ти битных таймера (мега64). Задача - организовать генерацию импульсов с этих таймеров так, чтобы импульсы со 2-го таймера генерировались с задаваемым сдвигом (величина сдвига передается по усарту) относительно импульсов первого. Импульсы могут быть как со скважностью 2  так и с настраиваемой длительностью импульса (соответственно таймеры в режиме по совпадению)







Я сделал так:


volatile int delay=0; //задаваемый сдвиг
volatile int tempdelay=0; // переменная для предыдущего сдвига
ISR (TIMER1_COMPA_vect)
{
...Генерация импульсов...
if (delay!=tempdelay) //если переменная delay изменилась то
{
OCR3A=OCR1A-tempdelay+delay; //отнимаем предыдущий сдвиг и прибавляем новый, т.е. получаем импульс большей формы на требуемый сдвиг
tempdelay=delay;
}
}
ISR (TIMER3_COMPA_vect)
{
...Генерация импульса со сдвигом...
OCR3A=OCR1A; //восстанавливаем значение ширины импульса
}




Генерацию импульсов описывать не стал, всё работает, однако никакого сдвига по импульсом не наблюдается, в чём тут может быть косяк?
Раздел: AVR

Уважаемый посетитель, Вы зашли на сайт как незарегистрированный пользователь.
Мы рекомендуем Вам зарегистрироваться, либо войти на сайт под своим именем.

Обсудить на форуме


На момент добавления Генерация Импульсов С Двух Таймеров С Задаваемым Сдвигом все ссылки были рабочие.
Все публикации статей, книг и журналов, представлены на этом сайте, исключительно для ознакомления,
авторские права на эти публикации принадлежат авторам статей, книг и издательствам журналов!
Подробно тут | Жалоба
Информация
Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.


Опрос

Ваши предпочтения в TRX


Одинарное преобразование
Двойное преобразование
Прямое преобразование
SDR
Другое
Мне всё равно

Популярные новости
Календарь новостей
«    Апрель 2024    »
ПнВтСрЧтПтСбВс
1234567
891011121314
15161718192021
22232425262728
2930