Автор Тема: Микросхема переключателя полярности  (Прочитано 3705 раз)

0 Пользователей и 1 Гость просматривают эту тему.

KMG

  • Сообщений: 3776
    • ICQ клиент - 412221711
    • AOL клиент - Mike
    • Просмотр профиля
    • E-mail
Re: Микросхема переключателя полярности
« Ответ #120 : Января 12, 2011, 12:48:32 pm »
Маленький трюк, для подавления дребезга одним махом с нескольких входов можно использовать мажоритирование
// Timer 1 output compare A interrupt service routine
interrupt [TIM1_COMPA] void timer1_compa_isr(void)
{
      OCR1A += 78;      // 5mS
      FrontSwitchMajority[1] = FrontSwitchMajority[2];
      FrontSwitchMajority[2] = FrontSwitchMajority[3];
      FrontSwitchMajority[3] = (PINB & 0x38) ^ 0x38;
      FrontSwitchMajority[0] = ((FrontSwitchMajority[2] | FrontSwitchMajority[3]) & FrontSwitchMajority[1])
            | (FrontSwitchMajority[2] & FrontSwitchMajority[3]);
}

Aseth

  • Сообщений: 78
  • Ремонт ноутбуков
    • Просмотр профиля
    • E-mail
Re: Микросхема переключателя полярности
« Ответ #121 : Января 12, 2011, 02:14:15 pm »
Цитировать
Маленький трюк, для подавления дребезга одним махом с нескольких входов можно использовать мажоритирование
// Timer 1 output compare A interrupt service routine
interrupt [TIM1_COMPA] void timer1_compa_isr(void)
{
      OCR1A += 78;      // 5mS
      FrontSwitchMajority[1] = FrontSwitchMajority[2];
      FrontSwitchMajority[2] = FrontSwitchMajority[3];
      FrontSwitchMajority[3] = (PINB & 0x38) ^ 0x38;
      FrontSwitchMajority[0] = ((FrontSwitchMajority[2] | FrontSwitchMajority[3]) & FrontSwitchMajority[1])
            | (FrontSwitchMajority[2] & FrontSwitchMajority[3]);
}
 
Красивый кусочек. Не большой ли интервал в 15 миллисекунд? Сколько надо времени, чтоб отфильтровать дребезг?

KMG

  • Сообщений: 3776
    • ICQ клиент - 412221711
    • AOL клиент - Mike
    • Просмотр профиля
    • E-mail
Re: Микросхема переключателя полярности
« Ответ #122 : Января 12, 2011, 02:30:34 pm »
Цитировать
Сколько надо времени, чтоб отфильтровать дребезг?
У разных кнопок по разному в зависимости от качества.
Цитировать
Не большой ли интервал в 15 миллисекунд?
Не думаю что в реале можно нажать и отпустить кнопку быстрее.

Aseth

  • Сообщений: 78
  • Ремонт ноутбуков
    • Просмотр профиля
    • E-mail
Re: Микросхема переключателя полярности
« Ответ #123 : Января 12, 2011, 03:03:02 pm »
Я про скорость реакции аппарата, ведь на слух задержка в 15мс уже ощутима.

OlegFX

  • Сообщений: 5097
    • Просмотр профиля
Re: Микросхема переключателя полярности
« Ответ #124 : Января 12, 2011, 03:13:28 pm »
TRASH уже, наверное, паяет (программирует, компилирует или как там это называется)!

Наши николаевские мужики суровей ваших челябинских - вот, на что они готовы идти, чтобы исключить два транзистора и два резистора!
« Последнее редактирование: Января 12, 2011, 03:15:07 pm от olegfx »

Samat

  • Гость
Re: Микросхема переключателя полярности
« Ответ #125 : Января 12, 2011, 03:49:01 pm »
@ OlegFX

Лучше день потерять, потом за 5 минут долететь, ...опаздываем страус, все вкусное съедят.  ;D

THRASH

  • Сообщений: 5719
  • GTLab - forever!
    • Просмотр профиля
    • E-mail
Re: Микросхема переключателя полярности
« Ответ #126 : Января 13, 2011, 09:20:02 am »
Цитировать
TRASH уже, наверное, паяет (программирует, компилирует или как там это называется)!

Наши николаевские мужики суровей ваших челябинских - вот, на что они готовы идти, чтобы исключить два транзистора и два резистора! 
Большая просьба больше не писать TRASH. Это два разных слова, обозначающих совсем разные вещи.
По поводу контроллера, чють позже проэкспериментирую. Господин @ Aseth обещал помочь программулиной.

Jackson JS32RT Dinky->X2N, Gavrilenko custom shop baritone 27*-> AHB-2-->DIY 2х12( governor+v12)

research

  • Гость
Re: Микросхема переключателя полярности
« Ответ #127 : Января 13, 2011, 10:08:02 am »
15 ms это надо очень хорошие кнопочки иметь.
Кто с дребезгом наелся, ставят задержки 0.3сек, если верить интернетам.
Я отмеряю 30мсек с момента последнего перепада. Но на дешевых кнопках - маловато.

Кусок кода от КМГ я непонял :)) В смысле буквы понял, но  не смог прочесть слово. Там среднее арифметическое последних 5 состояний порта?

KMG

  • Сообщений: 3776
    • ICQ клиент - 412221711
    • AOL клиент - Mike
    • Просмотр профиля
    • E-mail
Re: Микросхема переключателя полярности
« Ответ #128 : Января 13, 2011, 10:41:23 am »
Трех состояний, выбирает большее количество нулей или единиц
0 0 0 = 0
1 0 0 = 0
0 1 0 = 0
0 0 1 = 0
0 1 1 = 1
1 0 1 = 1
1 1 0 = 1
1 1 1 = 1
Для 5-ти также есть формула тоже только на операциях и/или.
Если нужно поищу

research

  • Гость
Re: Микросхема переключателя полярности
« Ответ #129 : Января 13, 2011, 11:08:59 am »
программный конденсатор получается. не мала матрица-то?

KMG

  • Сообщений: 3776
    • ICQ клиент - 412221711
    • AOL клиент - Mike
    • Просмотр профиля
    • E-mail
Re: Микросхема переключателя полярности
« Ответ #130 : Января 13, 2011, 11:46:58 am »
Ни разу сбоев не было, можешь таймерные клики до 10мС увеличить.
Преимущемтво в том что он скоростной (только логические операции) и легко реализуется даже на ассемблере.
Вот алгоритм для 5-ти выборок.
res = ((byte[3] | byte[4] | byte[2]) & byte[1] & byte[0])
      | ((byte[3] | byte[4]) & byte[2] & byte[1])
      | ((byte[3] | byte[4]) & byte[2] & byte[0])
      | ((byte[0] | byte[1] | byte[2]) & byte[3] & byte[4]);

0 0 0 0 0 = 0
1 0 0 0 0 = 0
0 1 0 0 0 = 0
0 0 1 0 0 = 0
0 0 0 1 0 = 0
0 0 0 0 1 = 0
1 1 0 0 0 = 0
0 1 1 0 0 = 0
0 0 1 1 0 = 0
0 0 0 1 1 = 0
1 0 1 0 0 = 0
0 1 0 1 0 = 0
0 0 1 0 1 = 0
1 0 0 1 0 = 0
0 1 0 0 1 = 0
1 0 0 0 1 = 0

1 1 1 1 1 = 1
0 1 1 1 1 = 1
1 0 1 1 1 = 1
1 1 0 1 1 = 1
1 1 1 0 1 = 1
1 1 1 1 0 = 1
0 0 1 1 1 = 1
1 0 0 1 1 = 1
1 1 0 0 1 = 1
1 1 1 0 0 = 1
0 1 0 1 1 = 1
1 0 1 0 1 = 1
1 1 0 1 0 = 1
0 1 1 0 1 = 1
1 0 1 1 0 = 1
0 1 1 1 0 = 1

OlegFX

  • Сообщений: 5097
    • Просмотр профиля
Re: Микросхема переключателя полярности
« Ответ #131 : Января 13, 2011, 12:39:04 pm »
Цитировать
Большая просьба больше не писать TRASH. Это два разных слова, обозначающих совсем разные вещи.
THRASH, сори, это моя невнимательность, ничего более!

Цитировать
15 ms это надо очень хорошие кнопочки иметь.
Кто с дребезгом наелся, ставят задержки 0.3сек, если верить интернетам.

В моих схемах так и есть - я остановился на постоянной времени = 0,33сек (330нФ*1МОм). Это значение немножко отличается от длительности импульса одновибратора (кажется, в 0,7 раз), но не суть, порядок тот же.

Цитировать
Я отмеряю 30мсек с момента последнего перепада. Но на дешевых кнопках - маловато.

Уточни, что за алгоритм у тебя? В схемах с одновибратором (ждущий мультивибратор) исполнительное устройство (триггер и всё, что дальше) срабатывает моментально от первого замыкания кнопки и не реагирует на ложные срабатывания (в т.ч. и на помехи от размыкания) в течение этих 0,3 сек - если ЖМ без перезапуска, или в течение 0,3 сек после последнего ложного срабатывания - если ЖМ по схеме с перезапуском. У тебя похоже на второй вариант.
А то тут речь шла о "заметности задержки включения" или о чём-то таком в этом же роде, что имелось ввиду?
« Последнее редактирование: Января 13, 2011, 04:25:13 pm от olegfx »

research

  • Гость
Re: Микросхема переключателя полярности
« Ответ #132 : Января 13, 2011, 12:44:05 pm »
вроде, суть понял

Aseth

  • Сообщений: 78
  • Ремонт ноутбуков
    • Просмотр профиля
    • E-mail
Re: Микросхема переключателя полярности
« Ответ #133 : Января 13, 2011, 12:57:04 pm »
0,3с - это же ж больше восьмушки в темпе 120уд./мин.!!! Уверен, что это перебор.

KMG

  • Сообщений: 3776
    • ICQ клиент - 412221711
    • AOL клиент - Mike
    • Просмотр профиля
    • E-mail
Re: Микросхема переключателя полярности
« Ответ #134 : Января 13, 2011, 01:33:09 pm »
Особенно для таптемпо, на второе нажатие может просто не сработать.

KMG

  • Сообщений: 3776
    • ICQ клиент - 412221711
    • AOL клиент - Mike
    • Просмотр профиля
    • E-mail
Re: Микросхема переключателя полярности
« Ответ #135 : Января 13, 2011, 01:47:23 pm »
Кстати есть микрухи для подавления дребезга
http://pdfserv.maxim-ic.com/en/an/AN287.pdf
http://datasheets.maxim-ic.com/en/ds/MAX6816-MAX6818.pdf
Внутри цифповой перезапускаемый одновибратор
Так  у них время этого одновибратора 20-60/20-80 мС.
Типовое время 40/50мС.
Не думаю что Maxim левак гонит.
« Последнее редактирование: Января 13, 2011, 01:51:41 pm от mike »

OlegFX

  • Сообщений: 5097
    • Просмотр профиля
Re: Микросхема переключателя полярности
« Ответ #136 : Января 13, 2011, 02:55:27 pm »
Цитировать
Внутри цифповой перезапускаемый одновибратор
Так  у них время этого одновибратора 20-60/20-80 мС.
Типовое время 40/50мС.
Не думаю что Maxim левак гонит.
Нет, конечно, не гонит. Я эту схему делал для работы в примочках ЛЕЛЬ - кнопки там просто ужасные были. Можно сказать, с запасом делал.

KMG

  • Сообщений: 3776
    • ICQ клиент - 412221711
    • AOL клиент - Mike
    • Просмотр профиля
    • E-mail
Re: Микросхема переключателя полярности
« Ответ #137 : Января 13, 2011, 03:44:57 pm »
Это я к тому что нижнюю границу они гарантируют 20 мС.
Для аналогового подавления (RC) конечно немного по другому считается, там нужно чтобы пила от дребезга на нарастающей экспоненте не зацепила несколько раз порог срабатывания элемента.

Samat

  • Гость
Re: Микросхема переключателя полярности
« Ответ #138 : Января 14, 2011, 01:39:40 pm »
Насколько помню, в стандартном мультике на рассыпухе цепочка 1M+10n, кнопка в землю через 100 Ом, ложных срабатываний я пока не видел за все 10 лет эксплуатирования, ...переключение очень быстрое, ...сколько там получается по времени если по феншую?