PCCar.ru - Ваш автомобильный компьютер

PCCar.ru - Ваш автомобильный компьютер (http://pccar.ru/index.php)
-   Сделай сам (http://pccar.ru/forumdisplay.php?f=17)
-   -   Поворотный энкодер - регулировка громкости (http://pccar.ru/showthread.php?t=1685)

Мастер 25.06.2008 23:24

Повесил свой энкодер обоими лапами на прерывания, заработало почти без ошибок. Но как-то жирно на одну крутилку все внешние прерывания отдавать.

Krock 29.06.2008 23:37

Ну что народ, есть идеи по моему вопросу?:dntknw:

Wanted 30.06.2008 11:33

Цитата:

Сообщение от Krock (Сообщение 66360)
Ну что народ, есть идеи по моему вопросу?:dntknw:

В предпоследнем посту вопросов не наблюдаю :)
В чем проблема в данный момент? В программировании МК?

Krock 30.06.2008 11:39

Именно в нем, был бы презнателен еслиб кто-то глянул на те прошивки которые я выкладывал и что-то подправил, ну скажем для PIC16F628A, хотя в принципе неважно главное чтоб заработало, вот.
Или подскажите прогу в которой можно былоб работу МК+схему симулировать.

Wanted 30.06.2008 12:43

Цитата:

Сообщение от Krock (Сообщение 66378)
Именно в нем, был бы презнателен еслиб кто-то глянул на те прошивки которые я выкладывал и что-то подправил, ну скажем для PIC16F628A, хотя в принципе неважно главное чтоб заработало, вот.
Или подскажите прогу в которой можно былоб работу МК+схему симулировать.

Я для AVR Логику энкодера реализовал за две минуты, еще пару дней делал USB привязку, в итоге схема из 10-15 деталей вместе с МК, а такие вещи будет вытворять! Мама не горюй.
Так что по AVR могу помоч только!

Krock 30.06.2008 13:16

:rolleyes2: Мне в принципе всеравно на чем делать, уж больно :) хочется доделать... Если не сложно удели и мне 2 минуты своего времени, навороты мне не нужны, только то что я раньше писал. Как я понимаю нужно 2 выходных порта, при повороте на одном "1" другой "0" и наоборот и все это через резистор на землю, токи там небольшие (на клавиатуре написанно 75mA max) где-то так. Большой тхэнкс!

Wanted 30.06.2008 13:35

Цитата:

Сообщение от Krock (Сообщение 66389)
:rolleyes2: Мне в принципе всеравно на чем делать, уж больно :) хочется доделать... Если не сложно удели и мне 2 минуты своего времени, навороты мне не нужны, только то что я раньше писал. Как я понимаю нужно 2 выходных порта, при повороте на одном "1" другой "0" и наоборот и все это через резистор на землю, токи там небольшие (на клавиатуре написанно 75mA max) где-то так. Большой тхэнкс!

Смотри я делал так, использовал два порта МК, на все настраиваются как входы с подтяжкой на +. Резисторы не нужны. При вращении энкодера соответсвующие ножки становятся 1 или 0. Проц работает у меня на частоте 12мегагерц. Идет опрос каждую 1/1000 секунды. Этого хватает чтобы не было проскоков и ошибок и внутри МК уже программа обрабатывает сам энкодер, вот она на C:
Код:

void pollEncoder(void)
{
uchar Enc;

Enc=(bit_is_clear(PINA,0)<<1)|(bit_is_clear(PINA,1)<<0);

 reportBuffer.Encoder1=0;
 reportBuffer.Encoder2=0;

if (oldEnc==Enc) { return; }

Enc=(oldEnc<<2)|(Enc);
oldEnc=Enc;

  if (Enc==0b0100) { reportBuffer.Encoder2=1; }
  if (Enc==0b0111) { reportBuffer.Encoder1=1; }
  if (Enc==0b1101) { reportBuffer.Encoder2=1; }
  if (Enc==0b1110) { reportBuffer.Encoder1=1; }
  if (Enc==0b1011) { reportBuffer.Encoder2=1; }
  if (Enc==0b1000) { reportBuffer.Encoder1=1; }
  if (Enc==0b0010) { reportBuffer.Encoder2=1; }
  if (Enc==0b0001) { reportBuffer.Encoder1=1; }

//go1:

return;
}


Krock 30.06.2008 13:54

Спасибо! :derisive: Вот только подскажи модель мк и буду делать!

Wanted 30.06.2008 14:04

Цитата:

Сообщение от Krock (Сообщение 66397)
Спасибо! :derisive: Вот только подскажи модель мк и буду делать!

ATTiny26 SU20 который.

den_sad 30.06.2008 17:36

Цитата:

Сообщение от Krock (Сообщение 66360)
Ну что народ, есть идеи по моему вопросу?:dntknw:

Я себе сделал из клавиатуры - там энкодер с кнопкой, через autohotkey развел на громкость, пролистывание треков и масштабирование карты


Часовой пояс GMT +4, время: 20:51.

Работает на vBulletin® версия 3.8.4.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot