http://forum.getchip.net/

Опрос инкрементального энкодера.
http://forum.getchip.net/viewtopic.php?f=18&t=679
Страница 1 из 1

Автор:  SVN [ 24 ноя 2015, 01:35 ]
Заголовок сообщения:  Опрос инкрементального энкодера.

На одной из моих девборд, установлен энкодер PEC12R-4225F-S0024. Вот и дошли руки его поюзать. Код примитивный…
Вложение:
2.png
2.png [ 11.01 КБ | Просмотров: 1925 ]

отслеживает только направление вращения и считает импульсы.
Для визуализации данного действия, подключил три светодиода...
Вложение:
1.png
1.png [ 13.02 КБ | Просмотров: 1925 ]

Вложение:
Test Compare.zip [5.89 КБ]
Скачиваний: 128

Автор:  Gnusmas [ 24 ноя 2015, 12:11 ]
Заголовок сообщения:  Re: Опрос инкрементального энкодера.

Может стоит объеденить c viewtopic.php?f=18&t=452 ?

Автор:  GetChiper [ 24 ноя 2015, 15:15 ]
Заголовок сообщения:  Re: Опрос инкрементального энкодера.

Не нужно - пусть будут разные варианты в разных топиках

Автор:  SVN [ 24 ноя 2015, 16:13 ]
Заголовок сообщения:  Re: Опрос инкрементального энкодера.

Gnusmas писал(а):
Может стоит объеденить c viewtopic.php?f=18&t=452 ?

Это два разных подхода к обработке энкодера. Каждая реализация алгоритма имеет как свои плюсы, так и минусы. Прежде чем писать код, я взвешивал все за и против подходов опроса. Мой выбор пал именно на такой метод, не используя внешнее прерывания. Я специально не делал фильтрующих цепей устранения дребезга контактов, добиваясь чёткой работы опроса энкодера. У энкодера есть ещё и другие тонкости, которые необходимо учитывать. В данном алгоритме всё это учтено.
У моего энкодера, 24 такта на один оборот. Образно говоря, за один так имеем 4 импульса. Так вот, пощупав осцилом, выяснилось, что энкодер можно остановить и на пол пути… затем вернуть обратно (пройдя два импульса из четырёх, с возвратом обратно). В таком случае, при внешнем прерывании будет посчитано за один такт, которого по сути и не было. А если устройству необходимо чёткое отслеживание положения движка энкодера, то получаем ошибку. И таких ошибок может накопится множество, что приведёт к потере контроля реального положения энкодера. Поюзай оба кода на железе и увидишь существенную разницу. Причём по моему алгоритму, я так и не смог обмануть МК как не старался. :-)

Автор:  als9 [ 29 фев 2016, 19:11 ]
Заголовок сообщения:  Re: Опрос инкрементального энкодера.

SVN писал(а):
специально не делал фильтрующих цепей устранения дребезга контактов, добиваясь чёткой работы опроса энкодера.

Отличный код для работы в тяжелых условиях, наводок , помех и т.д. :OK: Берем на вооружение !
Опробывал прежде несколько вариантов по внешним прерываниям - на столе работают четко - в тяжелых условиях полная белиберда и с подавлением дребезга програмным и конденсаторами на входе .

Страница 1 из 1 Часовой пояс: UTC + 3 часа [ Летнее время ]
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/