Autor Tema: hace falta rutina antirebotes en switch activado por interrupción?  (Leído 5146 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado morelius21

  • PIC12
  • **
  • Mensajes: 55
Hola,

Primero agradecer cualquier ayuda aquí aportada,

Mi pregunta es si cada vez que pulso un switch que activa una interrupción por cambio de flanco tengo que realizar una rutina para los rebotes. Se que si conecto un switch en un puerto y detecto si esta pulsado tengo que hacer una rutina para evitar los rebotes pero con una interrupción hace falta? ya que solo al  detectar un cambio ya activa la interrupción y da igual si hay rebotes. estoy en lo cierto?

saludos

Desconectado ppyote

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 929
Re: hace falta rutina antirebotes en switch activado por interrupción?
« Respuesta #1 en: 25 de Mayo de 2014, 19:08:00 »
yo te diria que si, pero todo depende.... la interrupcion por RB detecta los dos cambios de flanco, el de bajada y el de subida... si por problemas en los switches te hace algun extraño, deberias de ponerlo... lo mejor para tu caso, seria deshabilitar esa interrupcion despues de haber detectado el cambio de flanco y con un timer contar un tiempo prudencial y volver a habilitarla la interrupcion justo al acabar el codigo alojado dentro de la interrupcion del timer
PPyote... siempre estareis en mi corazon.... Te quiero Hermano...

Desconectado PalitroqueZ

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 5490
    • Electrónica Didacta
Re: hace falta rutina antirebotes en switch activado por interrupción?
« Respuesta #2 en: 25 de Mayo de 2014, 22:25:44 »
Citar
hace falta rutina antirebotes en switch activado por interrupción?

¡siempre! porque puede darse el caso que ocurra un flanco producto de una oscilación en las partes mecanicas del switche.

en el peor de los casos, puede ocurrir una oscilación que esquive las rutinas antirebotes. Imagina que en tu rutina preguntas 2 veces por el mismo flanco, y si ocurre un ruido que genere 3 flancos? o por ejemplo preguntas por el flanco cada 5 ms en 3 ocasiones y resulta que en el mismo instante que escaneas el pin, el ruido genera un flanco en lógica contraria al estado del switche haciendo que el pic crea que no has cambiado el switche.






La propiedad privada es la mayor garantía de libertad.
Friedrich August von Hayek

Desconectado rotting79

  • PIC12
  • **
  • Mensajes: 91
Re: hace falta rutina antirebotes en switch activado por interrupción?
« Respuesta #3 en: 27 de Mayo de 2014, 00:59:04 »
Hey there

I want to share what i do, I ALWAYS use a hardware debounce, specially when I use Interrupts.

If u want to use Interrupts is beacuse u need a quick responce, right???, so don't spend time checking if there is a real LOW, that's why I use as hardware (and doesn't steal too much room)...

Hola

Quiero compartir lo que hago, yo siempre uso un antirrebote de hardware, especialmente cuando uso interrupciones.

U Si desea utilizar alarmas es por culpa u necesidad de un responce rápido, ¿verdad???, Así que no pasar tiempo de comprobar si existe un bajo real, es por eso que uso como hardware (y no roba mucho espacio). ..




It is just a low pass filter...
Es sólo un filtro de paso bajo ...



...and u can see it in the scope, clean and shiny
... yu puede verlo en el ámbito de aplicación, limpio y brillante



hope this helps
...On November 2nd, a PIC10 became self-aware and decided our fate in __delay_us ( 1 ); ...

Desconectado rotting79

  • PIC12
  • **
  • Mensajes: 91
Re: hace falta rutina antirebotes en switch activado por interrupción?
« Respuesta #4 en: 27 de Mayo de 2014, 01:27:24 »
These are some examples how the LOW-HIGH action goes crazy when u don't use a hardware debounce...
Estos son algunos ejemplos de cómo la acción BAJO-ALTO se vuelve loco cuando u no utilizan un antirrebote de hardware ...




Probability u already know, but this kind of solution is pretty cheap!!! just a cap and a resistor.
Probabilidad u ya lo sé, pero este tipo de solución es bastante barato! una gorra y una resistencia.

...On November 2nd, a PIC10 became self-aware and decided our fate in __delay_us ( 1 ); ...

Desconectado ppyote

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 929
Re: hace falta rutina antirebotes en switch activado por interrupción?
« Respuesta #5 en: 27 de Mayo de 2014, 05:03:23 »
Cuando los retardos de tiempo son críticos, uso antirebotes por hardware, de lo contrario no los suelo usar
PPyote... siempre estareis en mi corazon.... Te quiero Hermano...

Desconectado MerLiNz

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 2463
Re: hace falta rutina antirebotes en switch activado por interrupción?
« Respuesta #6 en: 27 de Mayo de 2014, 06:36:22 »
Si no lo pones con un filtro como ha puesto  rotting79 entonces se te activara la interrupcion varias veces (efecto rebote) esto es porque se cambia el flanco varias veces hasta que se estabiliza.

Desconectado Nocturno

  • Administrador
  • DsPIC33
  • *******
  • Mensajes: 18310
    • MicroPIC
Re: hace falta rutina antirebotes en switch activado por interrupción?
« Respuesta #7 en: 27 de Mayo de 2014, 14:14:42 »
Si no quieres o no puedes modificar el hardware, y dispones de un timer, también puedes usar el antirrebotes por software.
Recientemente publiqué una librería que lo facilita.
http://www.micropic.es/mpblog/2014/05/gestion-de-pulsadores/

Desconectado morelius21

  • PIC12
  • **
  • Mensajes: 55
Re: hace falta rutina antirebotes en switch activado por interrupción?
« Respuesta #8 en: 27 de Mayo de 2014, 17:54:56 »
Primero de todo. Muchisimas gracias!!! ((:-))


Veo que tiene toda su lógica lo que me comentan y ademas con ejemplos y todo(thanks rotting79)!

Como el tiempo no es crucial usare la técnica que comenta ppyote de deshabilitar la interrupción y volverla a habilitat una vez acabe el código.


Saludos y gracias

Desconectado rotting79

  • PIC12
  • **
  • Mensajes: 91
Re: hace falta rutina antirebotes en switch activado por interrupción?
« Respuesta #9 en: 28 de Mayo de 2014, 23:49:58 »
Noturno

that's a good one, really good
sadly I need to translate your page everything is f*** up!!, so i'll take some time to dig into the code just after clean up the translation

thanxxx

eso es bueno, muy bueno
lamentablemente tengo que traducir su página todo se f *** up!!, así que me tomaré un tiempo para profundizar en el código justo después de la limpieza de la traducción

thanxxx
...On November 2nd, a PIC10 became self-aware and decided our fate in __delay_us ( 1 ); ...

Desconectado Nocturno

  • Administrador
  • DsPIC33
  • *******
  • Mensajes: 18310
    • MicroPIC
Re: hace falta rutina antirebotes en switch activado por interrupción?
« Respuesta #10 en: 29 de Mayo de 2014, 02:17:25 »
Es sencillo, pero muy útil.
Me alegro que te guste.

Desconectado rotting79

  • PIC12
  • **
  • Mensajes: 91
Re: hace falta rutina antirebotes en switch activado por interrupción?
« Respuesta #11 en: 24 de Junio de 2014, 21:34:29 »
hey there

just to let u know, that I've use ur library and successfully (with some changes) is great, even on Touch Sensors

Hola

sólo para que tu sabes, que yo he utilizo ur biblioteca y con éxito (con algunos cambios) es grande, incluso en Sensores táctiles



https://plus.google.com/u/0/photos/118222667101320431167/albums/6017942654624260993/6028653976133783650?pid=6028653976133783650&oid=118222667101320431167

at the beginning u'll see with regular buttons, then with the CTMU' Microchips Touch Sensors
*sorry about the darkness, that's because the seven segments display to display correctly.

al inicio U lo ven con botones regulares, luego con la CTMU 'Microchips Sensores táctiles
* lo de la oscuridad, eso es porque los siete segmentos de la pantalla se muestre correctamente.


thanxxxx  the Noturno
« Última modificación: 24 de Junio de 2014, 22:43:21 por rotting79 »
...On November 2nd, a PIC10 became self-aware and decided our fate in __delay_us ( 1 ); ...

Desconectado Nocturno

  • Administrador
  • DsPIC33
  • *******
  • Mensajes: 18310
    • MicroPIC
Re: hace falta rutina antirebotes en switch activado por interrupción?
« Respuesta #12 en: 25 de Junio de 2014, 01:56:40 »
Me alegro que te haya servido, y muchas gracias por tu feedback