Autor Tema: Flanco de subida ... y de bajada.  (Leído 3648 veces)

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

Desconectado RedPic

  • Administrador
  • DsPIC33
  • *******
  • Mensajes: 5544
    • Picmania by Redraven
Flanco de subida ... y de bajada.
« en: 17 de Diciembre de 2005, 17:18:00 »
Amables Picmaniacos:

En un intento por analizar los efectos de los rebotes en un pulsador he contruido un pequeño programa con el que guardo los sucesivos valores de TIMER0 en cada interrupción externa provocada por una pulsación.

Como pretendo no solo contar los pulsos sino también calcular sus duraciones, lo que hago es conmutar el flanco que dispara la interrupción en cada una de ellas que se produce. Esta técnica ya la utilicé hace años con el 68HC11 programando en ensamblador.

Ahora, con un PIC 16F876A y en CCS PICC he intentado hacer lo mismo.

Con mi rutina de interrupción relleno así dos tablas paralelas con los valores de TIMER0 en cada flanco de subida y en cada flanco de bajada:

Codigo:

#int_EXT
EXT_isr() {

   switch(fedge){
      case 0:  TimesUp[uTimeUp++]=GET_RTCC();
               fedge=1;
               ext_int_edge(H_TO_L);
               break;
      case 1:  TimesDown[uTimeDown++]=GET_RTCC();
               fedge=0;
               ext_int_edge(L_TO_H);
               break;
   }
}



TimesUp y TimesDown son sendos Arrays de integers donde guardo cada uno de los tiempos para cada tipo de flanco del pulso.

Aún suponiendo que mi pulsador fuese perfecto, que no lo es, debería tener siempre pares de valores de TIMER0. Inicio siempre el programa esperando el flanco de subida, que al producirse (case fedge=0) hace que se reprograme la interrupción para esperar el de bajada (case fedge=1) .... con una pulsación perfecta, sin rebotes, con un solo pulso, debería tener al menos dos valores de TIMER0 con ambos flancos.

Sorprendentemente no es así. La mayoria de las veces solo obtengo números impares de interrupciones faltandome uno de los flancos.

Perplejo estoy. ¿Se os ocurre algo?




Contra la estupidez los propios dioses luchan en vano. Schiller
Mi Güeb : Picmania

Desconectado pocher

  • Moderador Local
  • DsPIC30
  • *****
  • Mensajes: 2568
RE: Flanco de subida ... y de bajada.
« Respuesta #1 en: 17 de Diciembre de 2005, 22:52:00 »
Ten en cuenta que los rebotes son similares a dejar caer una pelota, la altura de la pelota va decreciendo (al soltar el pulsador). Puede que alguno de los últimos rebotes sea capaz de disparar el flanco de subida, pero al finalizar la interrupción ya no pueda detectar el flanco de bajada. Algo análogo pasaría al accionar el pulsador, puede que se pierda algún flanco de subida.

Desconectado RedPic

  • Administrador
  • DsPIC33
  • *******
  • Mensajes: 5544
    • Picmania by Redraven
RE: Flanco de subida ... y de bajada.
« Respuesta #2 en: 18 de Diciembre de 2005, 03:05:00 »
Sin embargo, amigo Pocher, los que aparentemente me faltan son casi siempre los de bajada.

Y por lo que dices solo puede ser debido a que son pulsos extremadamente cortos por lo que el flanco de bajada se presenta antes de que mi rutina de interrupción haya terminado de reconfigurarse.

Voy a probar poniendole un cristal mas rápido, ahora estoy utilizando un 4 Mhz, puedo testearlo con uno 6 Mhz y con otro de 8 Mhz con lo que tendré mas sensibilidad para pulsos cortos.

Gracias.
Contra la estupidez los propios dioses luchan en vano. Schiller
Mi Güeb : Picmania

Desconectado RedPic

  • Administrador
  • DsPIC33
  • *******
  • Mensajes: 5544
    • Picmania by Redraven
RE: Flanco de subida ... y de bajada.
« Respuesta #3 en: 18 de Diciembre de 2005, 06:25:00 »
Aparte de tonto soy imbecil, despistado, animal y cuando leo no comprendo lo que estoy leyendo Ardiendo

He visto el esquema de conexión de mi pulsador decenas de miles de millones de veces y como si estuviese mirando la pared de mi habitación:



y yo, tonto de mí, mil quintillones de veces imbécil, habilitando de inicio el flanco de subida, cuando lo que me llega es primero el de bajada .... Ardiendo

Cambiando el programa para que reciba primero éste flanco y despues el de subida: Tenemos por fin el resultado mágico, real y verdadero, de lo que está ocurriendo con el puñetero botón, con las interrupciones a pares, con su flanco de bajada PRIMERO y su flanco de SUBIDA después:



Bueeeno, bien está lo que bien acaba. Angelito


P.D.: Ahora corriendo raudo y veloz a cambiar lo publicado en mi Web, que está mal, rematadamente mal (Espero que nadie haya intentado hacer uso de mis nefastos consejos durante el tiempo que he tardado en ver La Luz)
Contra la estupidez los propios dioses luchan en vano. Schiller
Mi Güeb : Picmania