а как делать повороты? если мы принудительно увеличим коэф заполнения какогонить канала то он с новым оборотом энкодера сбросится обратно до прямолинейного движения
Поворачивать задавая разные коэффициенты заполнения для двигателей. Рассчитывать коэффициенты заполнения нужно с учетом радиуса поворота и колесной базы. Например при радиусе поворота 10 см и базе 5 см линейные скорости вращения внешнего и внутреннего колеса относятся как 2:1.
Как пункты 2, 3 и 4, 5 будут выполняться параллельно МК он же не 2-х ядерный? Если следить по прерывания, то где гарантия что следующий сигнал не попадет на момент выполнения прерывания?
Master писал(а):Как пункты 2, 3 и 4, 5 будут выполняться параллельно МК он же не 2-х ядерный? Если следить по прерывания, то где гарантия что следующий сигнал не попадет на момент выполнения прерывания?
а мы будем сканировать ноги на предмет появления там 1 от энкодера =)
Тогда уж лучше повесить N-кодеры на INT0 и INT1, и по переполнению таймера, скажем раз в 1 сек, смотреть скока набежало на каждом колесе. А остальные ресурсы МК бросить на что то более полезное. Блин у меня кнопка Ctrl отвалилась и клея нету теперь раскладку не могу номана переключать
Master писал(а):Как пункты 2, 3 и 4, 5 будут выполняться параллельно МК он же не 2-х ядерный? Если следить по прерывания, то где гарантия что следующий сигнал не попадет на момент выполнения прерывания?
Фронты можно сканить с частотой срабатывания (переполнения) таймера, погрешность дискрентизации будет 1 такт таймера
а почему ты их N-кодерами зовёшь??? какойто есть великий смысл в том чтобы называть их N-кодерами а не например Z-кодерами я всегда думал что это простое слово encoder 1) кодирующее устройство, кодер; шифратор