мк должен выполнять 3 задачи:
1) Посылать 50 раз в сек управляющие импульсы на сервы
2) Измерять длительность импульса, подключенного к внешнему прерыванию (тоже серво сигнал)
3) см. пункт 2, только другой канал
Т.е. нужно измерять длительности серво импульсов по 2м каналам и при этом управлять еще другими сервами.
Все это по отдельности и даже в любых комбинациях по 2 у меня работает. Т.е. я могу измерять длительности импульсов по обоим каналам или измерять по 1 каналу и еще управлять своими сервами.
А вот все вместе неполучается.
На данный момент алгоритм такой:
Прога ждет внешнего прерывания на одном канале по изменению фронта.
При старте импульса записывает время, при окончании импульса вычисляется его длительность и выдается пачка по 1 ипмпульсу на каждую серву. Т.о. посылка своих импульсов тактируется как бы внешним источником других сервоимпульсов.
А вот как сделать так, чтобы прога сначала вычисляла длительность по 2м каналам, а в промежутке запускала свои импульсы, я пока не придумал
PS: Нормальный вариант это развести задачи на 2 МК, но хочется пока попробовать на одном.