Автор |
Сообщение |
|
|
Заголовок сообщения: |
Re: Опрос инкрементального энкодера. |
Цитата |
|
Код действительно может работать только в качестве "проверялки" для энкодера. В работе не пригоден. Для нормального отслеживания необходимо использовать внешние прерывания. 2 провода - 2 бита, счет до четырех. Только так можно заставить нормально работать. 1. Если делать через таймер, то это гарантированно приведет к ошибке счета. 2. следить за изменением на одном проводе и после этого проверять второй провод так же, будет давать ошибку. 3. счет до 4х, дает возможность фиксировать полушаг.
Код действительно может работать только в качестве "проверялки" для энкодера. В работе не пригоден. Для нормального отслеживания необходимо использовать внешние прерывания. 2 провода - 2 бита, счет до четырех. Только так можно заставить нормально работать. 1. Если делать через таймер, то это гарантированно приведет к ошибке счета. 2. следить за изменением на одном проводе и после этого проверять второй провод так же, будет давать ошибку. 3. счет до 4х, дает возможность фиксировать полушаг.
|
|
|
 |
Добавлено: 03 янв 2020, 22:10 |
|
|
 |
|
|
Заголовок сообщения: |
Re: Опрос инкрементального энкодера. |
Цитата |
|
[quote="SVN"] специально не делал фильтрующих цепей устранения дребезга контактов, добиваясь чёткой работы опроса энкодера. [/quote] Отличный код для работы в тяжелых условиях, наводок , помех и т.д. :OK: Берем на вооружение ! Опробывал прежде несколько вариантов по внешним прерываниям - на столе работают четко - в тяжелых условиях полная белиберда и с подавлением дребезга програмным и конденсаторами на входе .
|
|
|
 |
Добавлено: 29 фев 2016, 19:11 |
|
|
 |
|
|
Заголовок сообщения: |
Re: Опрос инкрементального энкодера. |
Цитата |
|
[quote="Gnusmas"]Может стоит объеденить c http://www.forum.getchip.net/viewtopic.php?f=18&t=452 ?[/quote] Это два разных подхода к обработке энкодера. Каждая реализация алгоритма имеет как свои плюсы, так и минусы. Прежде чем писать код, я взвешивал все за и против подходов опроса. Мой выбор пал именно на такой метод, не используя внешнее прерывания. Я специально не делал фильтрующих цепей устранения дребезга контактов, добиваясь чёткой работы опроса энкодера. У энкодера есть ещё и другие тонкости, которые необходимо учитывать. В данном алгоритме всё это учтено. У моего энкодера, 24 такта на один оборот. Образно говоря, за один так имеем 4 импульса. Так вот, пощупав осцилом, выяснилось, что энкодер можно остановить и на пол пути… затем вернуть обратно (пройдя два импульса из четырёх, с возвратом обратно). В таком случае, при внешнем прерывании будет посчитано за один такт, которого по сути и не было. А если устройству необходимо чёткое отслеживание положения движка энкодера, то получаем ошибку. И таких ошибок может накопится множество, что приведёт к потере контроля реального положения энкодера. Поюзай оба кода на железе и увидишь существенную разницу. Причём по моему алгоритму, я так и не смог обмануть МК как не старался. :-)
|
|
|
 |
Добавлено: 24 ноя 2015, 16:13 |
|
|
 |
|
|
Заголовок сообщения: |
Re: Опрос инкрементального энкодера. |
Цитата |
|
Не нужно - пусть будут разные варианты в разных топиках
Не нужно - пусть будут разные варианты в разных топиках
|
|
|
 |
Добавлено: 24 ноя 2015, 15:15 |
|
|
 |
|
|
Заголовок сообщения: |
Re: Опрос инкрементального энкодера. |
Цитата |
|
Может стоит объеденить c viewtopic.php?f=18&t=452 ?
Может стоит объеденить c http://www.forum.getchip.net/viewtopic.php?f=18&t=452 ?
|
|
|
 |
Добавлено: 24 ноя 2015, 12:11 |
|
|
 |
|
|
Заголовок сообщения: |
Опрос инкрементального энкодера. |
Цитата |
|
На одной из моих девборд, установлен энкодер PEC12R-4225F-S0024. Вот и дошли руки его поюзать. Код примитивный…
2.png [ 11.01 КБ | Просмотров: 21241 ]
отслеживает только направление вращения и считает импульсы. Для визуализации данного действия, подключил три светодиода...
1.png [ 13.02 КБ | Просмотров: 21241 ]
Test Compare.zip [5.89 КБ]
Скачиваний: 1576
На одной из моих девборд, установлен энкодер PEC12R-4225F-S0024. Вот и дошли руки его поюзать. Код примитивный… [attachment=2]2.png[/attachment] отслеживает только направление вращения и считает импульсы. Для визуализации данного действия, подключил три светодиода... [attachment=1]1.png[/attachment] [attachment=0]Test Compare.zip[/attachment]
|
|
|
 |
Добавлено: 24 ноя 2015, 01:35 |
|
|
 |
|