|
Энкодер и дребезг, нужна помощь |
|
|
|
 |
Ответов
|
Sep 9 2013, 18:13
|

Профессионал
    
Группа: Участник
Сообщений: 1 620
Регистрация: 22-06-07
Из: Санкт-Петербург, Россия
Пользователь №: 28 634

|
Какая скорость прихода импульсов с валкодера? Разрешение? Крутит человек или это колесо на производстве чего-то? Дребезг давить аппаратно (с опичтеских не требуется), если быстродействие озволяет, оба сигнала завести на прерывания. Обработчик общий на двоих: Код static uint_fast8_t old_val;
void spool_encinterrupt(void) { const uint_fast8_t new_val = hardware_get_encoder_bits(); /* Состояние фазы A - в бите с весом 2, фазы B - в бите с весом 1 */
// dimensions are: // old_bits new_bits static const int_fast8_t graydecoder [4][4] = { { +0, /* 00 -> 00 stopped */ -1, /* 00 -> 01 rotate left */ +1, /* 00 -> 10 rotate right */ +0, /* 00 -> 11 invalid combination */ }, { +1, /* 01 -> 00 rotate right */ +0, /* 01 -> 01 stopped */ +0, /* 01 -> 10 invalid combination */ -1, /* 01 -> 11 rotate left */ }, { -1, /* 10 -> 00 rotate left */ +0, /* 10 -> 01 invalid combination */ +0, /* 10 -> 10 stopped */ +1, /* 10 -> 11 rotate right */ }, { +0, /* 11 -> 00 invalid combination */ +1, /* 11 -> 01 rotate right */ -1, /* 11 -> 10 rotate left */ +0, /* 11 -> 11 stopped */ }, };
#if ENCODER_REVERSE position1 -= graydecoder [old_val][new_val]; #else position1 += graydecoder [old_val][new_val]; #endif old_val = new_val; } В инициализации не забыть Код old_val = hardware_get_encoder_bits(); /* Состояние фазы A - в бите с весом 2, фазы B - в бите с весом 1 */ чтобы ложные шаги при ресете не проходили на стоящем валкодере.
|
|
|
|
|
Sep 9 2013, 19:35
|
Профессионал
    
Группа: Свой
Сообщений: 1 351
Регистрация: 21-05-10
Пользователь №: 57 439

|
Цитата(Genadi Zawidowski @ Sep 9 2013, 22:13)  . Красиво. Дребезг даже не подавленный не будет мешать, однако будут лишние вызовы прерываний, что не есть хорошо. Если время оборота составляет несколько миллисекунд, то возможно поллинг будет лучшим подходом.
Сообщение отредактировал IgorKossak - Sep 10 2013, 18:39
Причина редактирования: бездумное цитирование
|
|
|
|
Сообщений в этой теме
BigCoster Энкодер и дребезг Apr 11 2007, 18:24 Visor Цитата(BigCoster @ Apr 11 2007, 23:24) По... Apr 11 2007, 18:44 BigCoster Цитата(Visor @ Apr 11 2007, 18:44) Ошибка... Apr 11 2007, 18:49  Visor 200Гц довольно много. Крыльчатка правильно рассчит... Apr 11 2007, 18:58 scifi Надо посмотреть осциллографом. Тогда будет понятне... Apr 11 2007, 19:21 CD_Eater Цитатадатчик положения (у меня крыльчатка + оптиче... Apr 11 2007, 19:22 Dog Pawlowa Цитата(BigCoster @ Apr 11 2007, 18:24) По... Apr 11 2007, 22:00 Линь Цитата(Dog Pawlowa @ Apr 12 2007, 02:00) ... Apr 2 2014, 02:23 Stas633 Цитата(BigCoster @ Apr 11 2007, 19:24) По... Apr 11 2007, 22:18 BigCoster Цитата(Stas633 @ Apr 11 2007, 22:18) Счит... Apr 12 2007, 10:25  Stas633 Цитата(BigCoster @ Apr 12 2007, 11:25) У ... Apr 12 2007, 13:44   BigCoster Цитата(Stas633 @ Apr 12 2007, 13:44) Наст... Apr 12 2007, 14:29    Stas633 Цитата(BigCoster @ Apr 12 2007, 15:29) Ко... Apr 12 2007, 15:13     BigCoster Цитата(Stas633 @ Apr 12 2007, 15:13) Обще... Apr 12 2007, 15:30      Dog Pawlowa Ну, если счетчик считает при остановленном двигате... Apr 12 2007, 15:44       BigCoster Цитата(Dog Pawlowa @ Apr 12 2007, 15:44) ... Apr 12 2007, 16:13        Dog Pawlowa Цитата(BigCoster @ Apr 12 2007, 16:13) Чт... Apr 12 2007, 16:51        Stas633 Цитата(BigCoster @ Apr 12 2007, 17:13) Ал... Apr 12 2007, 17:03        Visor Цитата(BigCoster @ Apr 12 2007, 21:13) РА... Apr 12 2007, 17:13         Stas633 Цитата(Visor @ Apr 12 2007, 18:13) Чтоб э... Apr 12 2007, 18:14          Visor Цитата(Stas633 @ Apr 12 2007, 23:14) Вним... Apr 12 2007, 19:08           Stas633 Цитата(Visor @ Apr 12 2007, 20:08) ....на... Apr 13 2007, 10:36            Visor Цитата(Stas633 @ Apr 13 2007, 15:36) Если... Apr 13 2007, 19:38          Dog Pawlowa Цитата(Stas633 @ Apr 12 2007, 18:14) [b].... Apr 12 2007, 19:20      Stas633 Цитата(BigCoster @ Apr 12 2007, 16:30) Пр... Apr 12 2007, 15:55     Visor Цитата(Stas633 @ Apr 12 2007, 20:13) прог... Apr 12 2007, 15:51 bgc много раз делал подобные схемы - заводил на вход т... Apr 12 2007, 09:49 ZAO Цитата(BigCoster @ Apr 11 2007, 19:24) Я ... Apr 12 2007, 10:27 BigCoster Цитата(ZAO @ Apr 12 2007, 10:27) Как раз ... Apr 12 2007, 10:40  ZAO Цитата(BigCoster @ Apr 12 2007, 11:40) Вс... Apr 12 2007, 10:46   BigCoster Цитата(ZAO @ Apr 12 2007, 10:46) А что за... Apr 12 2007, 11:00 ZAO Вы вполне можете завести одно таймерное прерывание... Apr 12 2007, 11:41 BigCoster Цитата(ZAO @ Apr 12 2007, 11:41) Вы вполн... Apr 12 2007, 11:55  ZAO Цитата(BigCoster @ Apr 12 2007, 12:55) То... Apr 12 2007, 13:05  rx3apf Цитата(BigCoster @ Apr 12 2007, 12:55) То... Apr 12 2007, 13:28 BigCoster Вот осцилограмма работы датчика, записанная в Soun... Apr 12 2007, 14:04 Stas633 Цитата(BigCoster @ Apr 12 2007, 15:04) ..... Apr 12 2007, 14:43  BigCoster Цитата(Stas633 @ Apr 12 2007, 14:43) Поло... Apr 12 2007, 15:10 _artem_ если есть механичекое дрожение крыльчатки при оста... Apr 12 2007, 14:13 _Sam_ ЦитатаВот осцилограмма работы датчика
........
Из ... Apr 12 2007, 23:03 BigCoster Цитата(_Sam_ @ Apr 12 2007, 23:03) Конечн... Apr 13 2007, 10:23 _Sam_ ЦитатаДело в том что импульсы от датчика считает с... Apr 13 2007, 11:32 BigCoster Цитата(_Sam_ @ Apr 13 2007, 11:32) Полнос... Apr 13 2007, 15:44 BigCoster ещё допишу...
отображать совсем точно значения не ... Apr 13 2007, 17:30 _Sam_ Наверное я не так понял программу.
А что вы делает... Apr 13 2007, 18:27 BigCoster Цитата(_Sam_ @ Apr 13 2007, 18:27) Наверн... Apr 13 2007, 19:14 _Sam_ Вроде дошло.
Попробуйте скачать какую-нибудь тер... Apr 13 2007, 19:48 BigCoster Цитата(_Sam_ @ Apr 13 2007, 19:48) Вроде ... Apr 13 2007, 20:09  Dog Pawlowa Цитата(BigCoster @ Apr 13 2007, 20:09) ... Apr 14 2007, 10:03   Stas633 Цитата(Dog Pawlowa @ Apr 14 2007, 11:03) ... Apr 14 2007, 19:44 Visor 'BigCoster'
Я сторонник отладки частями, и... Apr 13 2007, 19:51 BigCoster Спасибо всем за ответы, многие из них очень информ... Apr 18 2007, 14:28 mandr Имею по работе проекты, в которых используются дат... May 17 2007, 14:46 BigCoster Я для себя решил, что без осциллографа схему менят... May 17 2007, 15:36 OlegIvanov 1. Двухканальный энкодер (о чем упоминалось выше),... May 23 2007, 22:51 MaslovVG Просмотрел ветку. Мое мнение. Подавить дребезг при... May 24 2007, 06:06 vladimir_orl Тема конечно устарела, но сейчас столкнулся с тем ... Sep 3 2013, 05:44 Tarbal Цитата(vladimir_orl @ Sep 3 2013, 09:44) ... Sep 4 2013, 20:02  A. Fig Lee Цитата(Tarbal @ Sep 4 2013, 16:02) ... Да... Sep 10 2013, 01:07   Tarbal Цитата(A. Fig Lee @ Sep 10 2013, 05:07) К... Sep 11 2013, 00:05    A. Fig Lee Цитата(Tarbal @ Sep 10 2013, 20:05) Я на ... Sep 11 2013, 02:14     Tarbal Цитата(A. Fig Lee @ Sep 11 2013, 06:14) М... Sep 13 2013, 13:30 A. Fig Lee Цитата(Genadi Zawidowski @ Sep 9 2013, 14... Oct 3 2013, 20:53 A. Fig Lee Добил.
В принципе, избавлятся от дребезга в енкод... Oct 4 2013, 19:27 A. Fig Lee Состряпал hardware схемку.
Не тестировал, правда.
... Oct 4 2013, 20:28 Tarbal Подавитель дребезга на стейт машине не давит дребе... Oct 8 2013, 13:36
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|