hcube> Прием из кома сделать можно, но мне нужен формат пакета . И прошу немного погодить - мне надо запрограммать и оттарировать пару ПВД . [»]
Погодить могу ;^))
Формат пакета придумай любой, какой тебе легче будет принимать с порта. Я потом напишу программу, которая будет посылать пакеты, какие нужны.
Давай пока определимся с железом и командами.
Железо:
контроллер, на нём:
1. управление двумя шаговыми двигателями через драйвера (задание направления вращения, скорости, старт/стоп)
2. два микропереключателя, замыкание любого приводит к останову обоих двигателей. При этом дальнейшее управление не должно блокироваться, т.е. при замкнутом микрике можно запустить двигатели.
3. 4 фотодатчика (два входа АЦП остаются свободными, но программа должна их тоже считывать, это задел на возможный апгрейд термометром или датчиком давления)
4. разъём на СОМ-порт
Команды, подаваемые с компьютера:
1. передать статус. МК передаёт параметры:
двигатели запущены/нет (для каждого двигателя)
заданная скорость (для каждого двигателя)
заданное направление (для каждого двигателя)
микрики замкнуты/нет (для каждого микрика)
данные с шести АЦП
2. задать скорость. Формат: номер двигателя - скорость
3. задать направление. Формат: номер двигателя - направление
4. запуск/останов. Формат: номер двигателя - запуск/останов
5. запись начать/остановить. МК начинает передавать те же параметры, что в п.1, с частотой 5-10 раз в секунду.
А можно обойтись без п.1 и п.5, пусть МК постоянно передаёт эти параметры, как только его включили. Тогда остаётся всего три команды.
Все эти команды работают совершенно независимо. Т.е. если задали новую скорость, то в МК просто изменяется соответствующая переменная. Если двигатель до этого работал, то у него изменяется скорость. Если не работал, то так и продолжает стоять.
Начальные параметры, устанавливаемые при запуске МК: скорость 0, направление - вперёд, двигатели остановлены.
hcube, это не слишком сложно? Я согласен на любое упрощение ;^))