Технический форум по робототехнике.
BPS » 22 авг 2005, 22:02
Вопрос сходу к спецам: возможно ли на каком-либо AVR реализовать так называемый многоканальный генератор заданной последовательности импульсов с минимальным шагом 10 мкс (ну или накрайняк 100 мкс)?
Скажем, уложусь ли при оптимально построенном коде в заданный миним шаг при частоте 8 МГц?
Собираюь это только проэкспериментировать с имеющимся у меня AT90S8535.
Какие может другие МК для этого посоветуете?
P.S. А вообще не пинайте, если что, я только разбираюсь :?
chief » 22 авг 2005, 22:49
Поподробней пожалуйста про многоканальность и про заданную последовательность...
Немного не понятно, ты частоту хочешь выдавать или данные?
BPS » 23 авг 2005, 12:06
Поясняю: используется восемь независимых каналов, на каждом из которых в нужный момент времени появляется импульс с заданной длительностью.
Длительность имульса, а ровно как и задержка перед его появлением относительно начала, задаётся предварительно и находится в пределах от 10 мкс до ......5 сек. То есть вот такой большой интервал, закладывается некая универсальность.
На каждом из восьми разрядов порта в устанавливаются 0 или 1.
Все имульсы на каждом из каналов выстроены относительно друг друга также с заданным временным интервалом, либо могут "перекрываться" друг другом во времени. Но это неважно.
Важно то, что уложусь ли я в быстродействии микроконтроллера.
NeoLP » 24 авг 2005, 06:09
при частоте в 8Мгц AVR выполняет одну инструкцию за 0.125 мкс (а на 16 и того быстрее), по моим понятиям для реализации такой логики с временем в 10мкс быстродействия хватит, а если "на крайняк" то еще и останется.
Змей-Горыныч » 12 сен 2005, 08:09
Я делал нечто подобное. 4-х каналиный генератор задержанных импульсов (ГЗИ). И нормально работает. Как совершенно правильно заметил товарищ:
NeoLP писал(а):при частоте в 8Мгц AVR выполняет одну инструкцию за 0.125 мкс (а на 16 и того быстрее)
Таким образом моё устройство могёт после прихода запускающего импульса выдавать управляющие сигналы по четырём каналам с задержкой от 125нс до 8с дискретностью 125 нс.
А если у тебя заранее определена последовательность для каждого канала, не составит труда её реализовать програмно.