реклама на сайте
подробности

 
 
> MEGA+энкодер
vetbaston
сообщение Sep 19 2006, 05:17
Сообщение #1


Частый гость
**

Группа: Новичок
Сообщений: 80
Регистрация: 21-08-06
Пользователь №: 19 702



Есть MEGA64 и инкрементальный энкодер PEC12-4220F , кто работал с энкодером посоветуйте , как правильно обстучать его? help.gif
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
psw
сообщение Sep 19 2006, 08:52
Сообщение #2


Участник
*

Группа: Участник
Сообщений: 16
Регистрация: 8-06-06
Пользователь №: 17 866



Цитата(vetbaston @ Sep 19 2006, 10:17) *
Есть MEGA64 и инкрементальный энкодер PEC12-4220F , кто работал с энкодером посоветуйте , как правильно обстучать его? help.gif

здесь кусок обслуживающий кодер, кнопку сам допишешь. biggrin.gif
Полностью согласен с Леонидом Ивановичем, поэтому функцию вызываю из основной
программы примерно раз в 20мСек, избавляюсь от дребезга и слишком быстрого вращения
define PIN_Coder PIND//PD0,PD1


char status,encoder = 0;

//-----------------------------------------------------------------------------------
signed char ReadEncoder(void)
{
register signed char temp = 0;
encoder = (~PIN_Coder & 0x03);//ïðîâåðÿåì PD0,PD1
if(status != encoder)
{
switch(encoder)
{
case 0:
if(status == 1) temp = 1;
else if(status == 2) temp = -1;
break;
case 1:
if(status == 3) temp = 1;
else if(status == 0) temp = -1;
break;
case 2:
if(status == 0) temp = 1;
else if(status == 3) temp = -1;
break;
case 3:
if(status == 2)temp = 1;
else if(status == 1) temp = -1;
break;
}
status = encoder;
}
return temp;
}
//-----------------------------------------------------------------------------------
Go to the top of the page
 
+Quote Post
Maik-vs
сообщение Sep 14 2007, 11:50
Сообщение #3


Местный
***

Группа: Участник
Сообщений: 246
Регистрация: 4-12-06
Пользователь №: 23 101



Цитата(psw @ Sep 19 2006, 12:52) *
здесь кусок обслуживающий кодер, кнопку сам допишешь. biggrin.gif
Полностью согласен с Леонидом Ивановичем .....

Вот здесь, в самом начале обсуждения, и был приведён правильный алгоритм, и соображения начёт скорости опроса.
Сам я категорически не люблю программных задержек и фильтрации дребезга по времени. Сегодня дребезг один, затра другой. Сегодня енкодер - ручка пользователя о 16 позициях, завтра - мышка какая-нибудь быстробегающая... Поэтому.
Если рассмотреть все фазы енкодера (00 01 10 11) то видно, что последовательность фаз в одну сторону 01320132... в другую 10231023.... Другие переходы (0132-3-2-3-20) есть дребезг. Т.е. нужен fifo на 3 двухбитных числа (1 байт/регистр) и анализ его 64 состояний (всего 2 значимые - шаг влево и шаг вправо). А уже как отслеживать - по прерыванию, поллингом - это каждый сам порешает.
Go to the top of the page
 
+Quote Post
qqqqqq
сообщение Sep 14 2007, 15:17
Сообщение #4


Участник
*

Группа: Свой
Сообщений: 65
Регистрация: 17-01-06
Пользователь №: 13 277



Цитата(Maik-vs @ Sep 14 2007, 17:50) *
Вот здесь, в самом начале обсуждения, и был приведён правильный алгоритм, и соображения начёт скорости опроса.
Сам я категорически не люблю программных задержек и фильтрации дребезга по времени. Сегодня дребезг один, затра другой. Сегодня енкодер - ручка пользователя о 16 позициях, завтра - мышка какая-нибудь быстробегающая... Поэтому.
Если рассмотреть все фазы енкодера (00 01 10 11) то видно, что последовательность фаз в одну сторону 01320132... в другую 10231023.... Другие переходы (0132-3-2-3-20) есть дребезг. Т.е. нужен fifo на 3 двухбитных числа (1 байт/регистр) и анализ его 64 состояний (всего 2 значимые - шаг влево и шаг вправо). А уже как отслеживать - по прерыванию, поллингом - это каждый сам порешает.


Да. Без сомнений, кусок тот самый. Ни в каких модификациях не нуждается. Помнить больше 4 бит смысла нет. Из них только 2 бита во время пребывания снаружи этого кода. Переходы 3-2-3-2-3-2 отлавливаются по 4м битам. Со счётчиком будет происходить +1,-1,+1,-1,+1,-1 - что на конечный результат отрицательно не скажется.
Прошу прощения, если кого-то ввёл в заблуждение... Тема исчерпана...
Go to the top of the page
 
+Quote Post
gte
сообщение May 16 2008, 17:29
Сообщение #5


Гуру
******

Группа: Свой
Сообщений: 2 318
Регистрация: 13-02-05
Из: Липецкая область
Пользователь №: 2 613



Цитата(qqqqqq @ Sep 14 2007, 19:17) *
Да. Без сомнений, кусок тот самый. Ни в каких модификациях не нуждается. Помнить больше 4 бит смысла нет. Из них только 2 бита во время пребывания снаружи этого кода. Переходы 3-2-3-2-3-2 отлавливаются по 4м битам. Со счётчиком будет происходить +1,-1,+1,-1,+1,-1 - что на конечный результат отрицательно не скажется.
Прошу прощения, если кого-то ввёл в заблуждение... Тема исчерпана...

Пробую использовать энкодер PEC16 BOURNS. Предварительно заготовленный код не пошел. Решил попробовать упоминаемый код, сбоит. Снял несколько осциллограм. Это с установленными RC цепочками. Без них иголки полноразмерные.
Попробую использовать прерывания, с многократным считыванием в течении 5 мсек для принятия решения о состоянии уровня. Благо, на 4 энкодера и кнопки целая Мега88.
Эскизы прикрепленных изображений
Прикрепленное изображение
Прикрепленное изображение
 
Go to the top of the page
 
+Quote Post
777777
сообщение May 17 2008, 14:19
Сообщение #6


Профессионал
*****

Группа: Участник
Сообщений: 1 091
Регистрация: 25-07-07
Из: Саратов
Пользователь №: 29 357



Цитата(gte @ May 16 2008, 21:29) *
Благо, на 4 энкодера и кнопки целая Мега88.


Ну вы даете! Я успешно обрабатываю с помощью ATtiny13 программой из 100 байт. Правда, не покупной энкодер (долгий поиск выявил, что все они - полное говно), а оптрон TCUT1300.


Так он еще и не оптический?! Выкинуть на помойку немедленно! А я еще удивляюсь, какой у энкодера может быть дребезг...
Go to the top of the page
 
+Quote Post
rx3apf
сообщение May 18 2008, 10:52
Сообщение #7


Гуру
******

Группа: Участник
Сообщений: 3 834
Регистрация: 14-06-06
Из: Moscow, Russia
Пользователь №: 18 047



Цитата(777777 @ May 17 2008, 18:19) *
Ну вы даете! Я успешно обрабатываю с помощью ATtiny13 программой из 100 байт. Правда, не покупной энкодер (долгий поиск выявил, что все они - полное говно),

Вот так прямо и все ? Что-то не замечал... Видел разок истирание пары позиций в валкодере трансивера от Yaesu, а так - работают годами, без проблем. В некоторых готовых изделиях - бывает пропуск или забывчивость, но совершенно однозначно чисто программная проблема. Тоже, видимо, кто-то посчитал, что раз энкодеры г..., то и утруждать себя правильной обработкой не стоит. А вот если головой подумать (или хоть начало топика прочитать, где как раз все разжевано) - то все получится просто, надежно, и будет работать много лет.

Цитата
а оптрон TCUT1300.

А нахрена ? Еще и оптическую часть городить, юстировать... Оптическая мышь стоит от сотни рублей, вытаскивается сенсор с подсветкой - и вот все готово. Бонусом еще и отдельный оптический кодер на колесико. С трещеткой.
Цитата
Так он еще и не оптический?! Выкинуть на помойку немедленно!

Разрешите выполнять ?! Вот сейчас прямо бегом все помчались... А кто будет делать трещетку, кнопку на шток ? Кто обеспечит микропотребление ? Предложите что-то оптическое в ту же цену, что изделия от Boirns или ALPS ? Нет ? Тогда, может быть, стоит поумерить категоричность ?
Цитата
А я еще удивляюсь, какой у энкодера может быть дребезг...

А еще дребезг бывает у кнопок, переключателей и реле. Если драйвер руки.sys настроен правильно - не мешает.
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- vetbaston   MEGA+энкодер   Sep 19 2006, 05:17
- - XsanyaX   Один из сигналов (А или В ) я заводил на внешнее ...   Sep 19 2006, 07:47
|- - Леонид Иванович   Обработка энкодера по прерываниям неудобна, так ка...   Sep 19 2006, 08:25
|- - Kovrov   Цитата(Леонид Иванович @ Sep 19 2006, 12...   Sep 21 2006, 07:18
|- - Леонид Иванович   А какой физический смысл несет переменная "чу...   Sep 21 2006, 09:07
||- - Kovrov   Цитата(Леонид Иванович @ Sep 21 2006, 13...   Sep 21 2006, 15:46
|- - Shurmas   Цитата(Kovrov @ Sep 21 2006, 11:18) пробл...   Sep 21 2006, 09:17
|- - gte   Ну так порекомендуйте ортронный по сносной цене.   May 17 2008, 19:45
|- - _Pasha   Цитата(777777 @ May 17 2008, 17:19) Так о...   May 18 2008, 06:17
|- - 777777   Цитата(rx3apf @ May 18 2008, 14:52) Видел...   May 18 2008, 17:04
|- - rx3apf   Цитата(777777 @ May 18 2008, 21:04) И что...   May 18 2008, 18:03
|- - 777777   Цитата(rx3apf @ May 18 2008, 22:03) Основ...   May 19 2008, 09:09
|- - rx3apf   Цитата(777777 @ May 19 2008, 13:09) Так в...   May 19 2008, 18:51
|- - 777777   Цитата(rx3apf @ May 19 2008, 22:51) Но ес...   May 20 2008, 07:27
|- - gte   Цитата(777777 @ May 20 2008, 11:27) Ты пр...   May 20 2008, 09:06
- - vetbaston   Спасибо всем! Буду пробовать!   Sep 19 2006, 11:12
- - Nikola Kirov   Не невозможно сделат на 2 перервания. Вот я делал....   Sep 19 2006, 11:16
- - Shurmas   советую апноут микрочип AN696 - там схемотехника и...   Sep 19 2006, 11:37
- - xemul   Для устранения дребезга по нескольким входам с оди...   Sep 21 2006, 09:42
- - Vladimir_T   Еще есть такое решение: По тику таймерного прерыва...   Sep 21 2006, 11:31
|- - Леонид Иванович   Если частота опроса 20 Гц, то получится страшно то...   Sep 21 2006, 12:09
||- - Vladimir_T   Цитата(Леонид Иванович @ Sep 21 2006, 15...   Sep 22 2006, 04:48
|||- - qqqqqq   Цитата(Vladimir_T @ Sep 22 2006, 10:48) Э...   Sep 13 2007, 12:08
||- - sitafern   Цитата(Леонид Иванович @ Sep 21 2006, 15...   May 18 2008, 11:23
||- - Леонид Иванович   Цитата(sitafern @ May 18 2008, 14:23) Про...   May 20 2008, 09:03
|- - Kovrov   Цитата(Vladimir_T @ Sep 21 2006, 15:31) Е...   Sep 22 2006, 07:10
|- - Леонид Иванович   С чувствительностью энкодера понятно. Я обычно дел...   Sep 22 2006, 08:30
|- - Kovrov   Цитата(Леонид Иванович @ Sep 22 2006, 12...   Sep 22 2006, 11:57
|- - Леонид Иванович   Цитата(Kovrov @ Sep 22 2006, 14:57) Могу ...   Sep 22 2006, 21:23
|- - Kovrov   конечно же спорить не о чем, да мы и не спорим - о...   Sep 23 2006, 04:00
|- - Stas633   Хочу поделиться результатами опытов с энкодером......   Nov 6 2006, 12:20
- - _artem_   Наверно загадочность заключается в том что : - при...   Sep 21 2006, 17:34
- - _artem_   Если нужно несколько таймеров а возиться неохота ...   Sep 22 2006, 09:25
- - Kovrov   0.15 это очень много... попробуйте использовать ин...   Nov 7 2006, 07:13
- - 676038   Перечитал эту ветку и хочу предложить свой алгорит...   Dec 6 2006, 13:28
|- - wired   Цитата(676038 @ Dec 6 2006, 16:28) Перечи...   Jun 17 2008, 11:06
|- - 676038   Цитата(wired @ Jun 17 2008, 17:06) взял з...   Jun 17 2008, 13:45
||- - wired   Цитата(676038 @ Jun 17 2008, 16:45) Я счи...   Jun 17 2008, 14:11
|- - Палыч   Цитата(wired @ Jun 17 2008, 14:06) взял з...   Jun 17 2008, 14:51
|- - wired   Цитата(Палыч @ Jun 17 2008, 17:51) Достал...   Jun 17 2008, 15:01
|- - 676038   Цитата(wired @ Jun 17 2008, 21:01) но на ...   Jun 17 2008, 15:09
||- - 676038   Цитата(676038 @ Jun 17 2008, 21:09) Добав...   Jun 17 2008, 15:12
||- - Палыч   Цитата(676038 @ Jun 17 2008, 18:12) Может...   Jun 17 2008, 15:32
|- - Палыч   Цитата(wired @ Jun 17 2008, 18:01) но на ...   Jun 17 2008, 15:09
|- - wired   Цитата(Палыч @ Jun 17 2008, 18:09) Чего и...   Jun 18 2008, 07:54
- - Kovrov   ничего не упустилию просто процессор лишний раз па...   Dec 6 2006, 19:58
- - aforestman   Посмотрите на "хвостатый экодер". Может ...   Dec 8 2006, 13:39
- - OlegIvanov   Нарисуйте на бумажке работу энкодера и сгенерируйт...   Dec 13 2006, 05:15
- - _Pasha   Ниасилил выделенный участок осциллограммы. Что это...   May 17 2008, 05:04
|- - gte   Вероятнее всего моя рука дрогнула. Т.е. в этом мес...   May 17 2008, 06:34
|- - _Pasha   Цитата(gte @ May 17 2008, 09:34) На один ...   May 17 2008, 07:21
- - gte   Смотрел на одном. Но исходя из вида плоскости конт...   May 17 2008, 07:51
- - gte   Ради справедливости. Оптические есть с фиксацией и...   May 19 2008, 05:15
- - 676038   В своем последнем варианте - по изменению состояни...   Jun 17 2008, 15:48
|- - Maik-vs   Цитата(676038 @ Jun 17 2008, 19:48) Прост...   Jun 18 2008, 09:41
||- - wired   Цитата(Maik-vs @ Jun 18 2008, 12:41)...   Jun 18 2008, 11:36
||- - Maik-vs   Цитата(wired @ Jun 18 2008, 15:36) какое ...   Jun 18 2008, 14:33
||- - wired   Цитата(Maik-vs @ Jun 18 2008, 17:33)...   Jun 18 2008, 15:01
||- - wired   Цитата(Maik-vs @ Jun 18 2008, 17:33)...   Jun 23 2008, 06:39
||- - Maik-vs   Цитата(wired @ Jun 23 2008, 10:39) я прав...   Jun 26 2008, 12:46
||- - wired   Цитата(Maik-vs @ Jun 26 2008, 15:46)...   Jun 26 2008, 14:48
|- - Палыч   Цитата(676038 @ Jun 17 2008, 18:48) Прост...   Jun 18 2008, 12:47
|- - gte   Цитата(Палыч @ Jun 18 2008, 16:47) грамоз...   Jun 18 2008, 12:58
|- - Палыч   Цитата(gte @ Jun 18 2008, 15:58) При испо...   Jun 18 2008, 13:10
- - gte   Именно такой. Я смотрел анализатором переключая по...   Jun 18 2008, 13:19
|- - Палыч   Посмотрел DS. В нём есть рисунок "Quadrature ...   Jun 18 2008, 14:25
|- - gte   Цитата(Палыч @ Jun 18 2008, 18:25) Посмот...   Jun 18 2008, 15:14
- - ozzy   Цитата(wired @ Jun 18 2008, 14:36) ... и...   Jun 20 2008, 20:37
- - haker_fox   Использую датчики от мышки для управления двигател...   Jun 24 2008, 03:33
- - tremor   Читать всю тему влом, поэтому просто приведу свой ...   Jun 24 2008, 18:08
|- - haker_fox   Цитата(tremor @ Jun 25 2008, 03:08) PEC16...   Jun 25 2008, 01:44
- - tremor   ЦитатаТолько вряд ли он выдержит вращения на высок...   Jun 25 2008, 01:54
|- - haker_fox   Цитата(tremor @ Jun 25 2008, 10:54) В ДШ ...   Jun 25 2008, 04:27
- - sansnotfor   мой вариант. энкодер опрашиваю в прерывании таймер...   Nov 12 2008, 09:51
- - Genadi Zawidowski   Ух ты... А тема ещй жива... Попробую предложиьть и...   Nov 13 2008, 16:41
- - Andrew O. Shadoura   Добавлю немного в копилку. Знаю, не самый лучший в...   Nov 15 2008, 12:41
- - Павлик   Приложу свою первую подпрограмку для работы с Энк...   Nov 15 2008, 14:14
- - sansnotfor   оооо... заметил, что мой код можно сократить в это...   Nov 21 2008, 06:43


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 19th July 2025 - 03:42
Рейтинг@Mail.ru


Страница сгенерированна за 0.01538 секунд с 7
ELECTRONIX ©2004-2016