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

 
 
 
Reply to this topicStart new topic
> LPC1768 - 2 encoders?
Allregia
сообщение Jul 11 2011, 07:44
Сообщение #1


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

Группа: Свой
Сообщений: 1 047
Регистрация: 28-06-07
Из: Israel
Пользователь №: 28 763



Есть устройство на LPC1768, просят добавить к нему ДВА енкодера. Ноги свободные есть, в т.е. и энкодерного интерфейса, но он там один.
Есть какие-то идеи?
Энкодеры обычные, контактные с кнопкой, одновременная работа двух енкодеров не нужна, но вариант одного енкодера, регулирующего 2 параметра (в зависимости от "нажат/не нажат") - у заказчика энтузиазизма не вызывает sad.gif
Сильно не вызывает - хочет два.

Думал уже обьединить им выходы через диоды, а общие квадратурный сигналов завести на выход их-же кнопок. Кнопки завести и на входы МК. Для работы - надо будет нажать энкодер и потом крутить. Но как-то это горбато, да и заводить кнопки надо будет не на просто порты, а на входы прерываний.
Go to the top of the page
 
+Quote Post
Dron_Gus
сообщение Jul 11 2011, 17:00
Сообщение #2


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

Группа: Свой
Сообщений: 1 202
Регистрация: 9-01-05
Из: Санкт-Петербург
Пользователь №: 1 861



Насколько быстро их будут крутить? Думаю хватит быстродействия, если второй энкодер повесить на пины внешнего прерывания. Или даже на одно прерывание.

З.Ы. в каком-то древнем радио была схема на двух корпусах жёсткой логики, на выходе был сигнал направления и импульс на каждый "шаг".


--------------------
Если сверху смотреть, то сбоку кажется, что снизу ничего не видно.
Go to the top of the page
 
+Quote Post
Allregia
сообщение Jul 11 2011, 20:40
Сообщение #3


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

Группа: Свой
Сообщений: 1 047
Регистрация: 28-06-07
Из: Israel
Пользователь №: 28 763



Цитата(Dron_Gus @ Jul 11 2011, 19:00) *
Насколько быстро их будут крутить?


Ну как обычно ручки крутят.

Цитата
Думаю хватит быстродействия, если второй энкодер повесить на пины внешнего прерывания. Или даже на одно прерывание.


Быстродействия 100 мегагерцового 32-х битного процессора? А тут еще надо "думать" ? sm.gif
Для этого хватает и 4-х мегагерцового PIC'а. Можно и без прерывания, опросом в прерывании по таймеру.
Как это делаться программно я в курсе, но раз уж у МК есть аппаратный блок для энкодера, то смысл будет или что-то "эдакое" придумать (о чем я и попросил "помощь клуба"), или уж если делать программно опрос, то обоих - а то я помру в муках выбора, какой из двоих сделать аппаратно, а какой программно sm.gif
Go to the top of the page
 
+Quote Post
VladKot
сообщение Jul 11 2011, 21:06
Сообщение #4


Местный
***

Группа: Свой
Сообщений: 293
Регистрация: 6-08-06
Из: Tallinn, Estonia
Пользователь №: 19 351



Посмотри м/с LS7183/LS7184
Прикрепленные файлы
Прикрепленный файл  LS7183_LS7184.pdf ( 38.86 килобайт ) Кол-во скачиваний: 20
 
Go to the top of the page
 
+Quote Post
Allregia
сообщение Jul 11 2011, 21:24
Сообщение #5


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

Группа: Свой
Сообщений: 1 047
Регистрация: 28-06-07
Из: Israel
Пользователь №: 28 763



Цитата
Посмотри м/с LS7183/LS7184
для данного применения - бессмысленно.
Go to the top of the page
 
+Quote Post
rx3apf
сообщение Jul 11 2011, 21:46
Сообщение #6


Гуру
******

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



Я бы взял мелкий микроконтроллер (что-нибудь типа attiny2313), оба энкодера обрабатывал бы на нем (простым опросом), изменение кода (сразу для обоих) - посылками через UART.... А если кроме энкодеров на морде еще кака-то индикация, то вообще все повесить на отдельный контроллер, который занимался бы вводом-выводом. Чтобы аккуратнее было и проводов по-меньше...
Go to the top of the page
 
+Quote Post
Allregia
сообщение Jul 12 2011, 05:28
Сообщение #7


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

Группа: Свой
Сообщений: 1 047
Регистрация: 28-06-07
Из: Israel
Пользователь №: 28 763



Цитата
А если кроме энкодеров на морде еще кака-то индикация, то вообще все повесить на отдельный контроллер, который занимался бы вводом-выводом


Да там в общем, этот МК 99ю99% времени и занимается вводом-выводом. LPC1768 стоит только из-за эзернета (управление через веб-сервер), а так, там бы и простого АВР-а хватило - процесссы все медленные.

Не, придется видимо программно....
Go to the top of the page
 
+Quote Post
evgen2
сообщение Jul 12 2011, 10:32
Сообщение #8


Местный
***

Группа: Участник
Сообщений: 236
Регистрация: 1-04-06
Пользователь №: 15 688



Цитата(Allregia @ Jul 11 2011, 11:44) *
Есть устройство на LPC1768, просят добавить к нему ДВА енкодера. Ноги свободные есть, в т.е. и энкодерного интерфейса, но он там один.
Есть какие-то идеи?
Энкодеры обычные, контактные с кнопкой, одновременная работа двух енкодеров не нужна, но вариант одного енкодера, регулирующего 2 параметра (в зависимости от "нажат/не нажат") - у заказчика энтузиазизма не вызывает sad.gif
Сильно не вызывает - хочет два.

Думал уже обьединить им выходы через диоды, а общие квадратурный сигналов завести на выход их-же кнопок. Кнопки завести и на входы МК. Для работы - надо будет нажать энкодер и потом крутить. Но как-то это горбато, да и заводить кнопки надо будет не на просто порты, а на входы прерываний.

Если енкодеры-кнопки, то на пропуск импульсов в принципе можно наплевать и можно обойтись без прерываний

Код
/****** encoder ***********/
/* Optical datchick codes */
#define OD_NOP   0
#define OD_MINUS 1
#define OD_PLUS  2
#define OD_ERROR 3

static int optdatSts[16]=
{ OD_NOP,   OD_PLUS,  OD_MINUS, OD_ERROR,
  OD_MINUS, OD_NOP,   OD_ERROR, OD_PLUS,
  OD_PLUS,  OD_ERROR, OD_NOP,   OD_MINUS,
  OD_ERROR, OD_MINUS, OD_PLUS,  OD_NOP
};


void Encoder(void)
{  int  enc, st, st0, Kon0;

//тут ввод с двух ног по вкусу
   Kon0 = FIO4PIN& 0x07;
   EncoderKey = (~(Kon0&0x01)) & 0x01;
   enc = (Kon0>>1);
//enc - это два бита

   if(encold != enc)
   {   st = (encold<<2)|enc;
       encold = enc;
       st0 = optdatSts[st];
       switch(st0)
       {  case OD_MINUS:
                       EncoderXpos++;
                 break;
          case OD_PLUS:
                       EncoderXpos--;
                  break;
          case OD_ERROR:
                  break;
        }
   }  
}
Go to the top of the page
 
+Quote Post

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

 


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


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