Здравствуйте! Я всего неделю изучаю программирование mega16 и читал курс avr123, но у меня осталось несколько вопросов. Научил ATmega16 вполне успешно рулить униполярным шаговиком в оба направления с заданным ускорением, программа на Cи в cvavr (1.2.58) получилась вполне красивой, всё вызывается через функцию c параметрами, и мейн занимает пару строк всего... Но задача моя состоит в другом.
Необходимо сделать так, чтобы превратить мегу16 в связке с uln2803(по 2 ножки на вывод каждой фазы ШД для снижения тока на ее ногу) в драйвер для этого движка, то бишь мега будет промежуточным звеном, на которое будет приходить по переднему фронту импульса задание на 1 "шаг" и на "направление". Нет ли у вас материалов с примером подобной программы? Желательно пример кода (ну или хотя бы алгоритм), потому что у меня опыта маловато и не до конца понимаю работу прерываний, хоть прочитал курс avr123 (в т.ч. и про прерывания, немного листал ДШ) и половину книги "codevisionAVR Пособие для начинающих" Лебедева.
Нужно чтобы по фронту импульса на одну из ног порта, например, PORTD, запускалась функция... Сейчас пробую сделать это через прерывание, потому что не знаю пока, как иначе выделить фронт и чтоб МК не проглотил управляющий импульс... Максимальная частота следования импульсов на "шаг" около 50 Гц (даже меньше), поэтому быстродействие тут не критично. Прошу прощения, если подобный вопрос поднимался уже и я свин не сумел нормально нагуглить по форуму... И мне нужно использовать именно МК, а не драйвер готовый для ШД, где уже предусмотрены такие входные сигналы.