Тема: Слишком большая длительность программного цикла
Поддержка, админы, окажите помощь советом.
Есть задача управлять электроприводом через Canny 5MD2 (Canny 5 Nano с силовой обвязкой).
Я считываю в диаграмме число импульсов с двух датчиков Холла, чтобы определить текущее положение. Но тут важно в процессе правильно определять направление вращения. Кроме всего привод могут прокрутить руками в любом направлении, и текущее положение нужно отслеживать. Сигналы датчиков смещены на пол волны. И вроде все просто: по фронту одного датчика читаю значение второго и принимаю решение о направлении вращения.
НО, импульсы идут с периодом до 2 мс на максимальной скорости. А длительность программного цикла 4 -5 мс. За это время может и второй импульс уже прилететь... или случится задний фронт уже... И попытка считать значение от второго датчика при фронте сигнала с первого дает ошибочное значение.
На языке C, я бы создал некое прерывание по фронту и всегда четко определял бы в этот момент значение на второй линии и определил бы положение. А как быть без прерываний? Или это в принципе невозможно в CannyLab?
Есть ли какие-нибудь советы по этому поводу? Во вложении картинка с сигналами для обработки, деление 1 мсек
