Hola.
Gracias pietrodilaccua por tus sugerencias,las voy a tener en cuenta,ya te comentare que tal los resultados.
Gracias tambien a ti Meybel,te comento un poco mas de mi proyecto,en cuestion mi diseño esta trabajado con 4 ic´s atraves de un bus I2C pero esta capturando un total de 32000 teclas semanales,con esta subrrutina,con lo que la estoy poniendo bien a prueba.
la conexion del teclado es sencilla,Rb7...Rb4 habilitadalas con las resistencias de pull-up RBPU son las columnas y Rb0..Rb3 son las filas.No he utilizado ninguna resistencia en serie con el teclado,por que no utilizo este puerto nada mas que para escanear las teclas.
En ocasiones aparecian el caracter "." en mis lecturas de teclado,coincidiendo con la perdida de algunas pulsaciones,hasta 6 0 7 "." continuos,revisando la subrrutina esto ocurre cuando se produce una INT sin pulsar una tecla,puesto que el valor de W en ese caso coincidia con el caracter ".".
Para generar una INT sin pulsar una tecla solo tengo que golpear una fila con un cable sin conexion o con la propia pinza del polimetro (Ruido),produciendo la aparicion del caracter "." en mis lecturas.salta la INT pero todas mis filas estan a "1".
Cuando esto ocurre simplemente salgo del servicio de interrupcion y ya no se graba el "." es facil la solucion,pero en alguna ocasion se pierde alguna tecla,y sospecho que este ruido continua siendo la causa de la perdida.puesto que donde esta ubicada mi placa existen otras placas funcionando con la misma alimentacion en la misma caja,y el numero de "." leidos aumento muchisimo comparado con los producidos en la pruebas de laboratorio con la placa sola,que fue alguno escaso.
No estoy utilizando nada mas que la INT del teclado,y el condensadores de desacoplo para cada aunque es verdad que en el caso del pic se encuentra a + o - 2 cms de distancia por pista del pic.tambien he tenido conectado una capacidad de 100u pero esto tiene un problema y es que para reiniciar la placa tengo que esperar a su descarga.
Gracias por sus comentarios.
Reciban un cordial saludo.