Funcionamiento de contador con sleep

Foro para hablantes de español que deseen escribir en su lengua materna.

Moderator: Benj

Post Reply
Fer_taca
Posts: 60
Joined: Fri Oct 27, 2017 9:50 am
Contact:

Funcionamiento de contador con sleep

Post by Fer_taca »

Hola,
tengo el programa que adjunto y necesitaría una pequeña aclaración de como implementar la función de sleep. En concreto el programa es el siguiente:
Esta realizado con un pic 16F628A para generar un emisor de 8 canales con oscilador interno. El programa en si funciona bien, pero al funcionar alimentado con batería me consume bastante y se agota rápidamente.
Consta de un teclado de 8 teclas, asignadas a los pines A0 a A7. Funcionado de la siguiente manera:
1º.- Inicialmente para que todo el teclado se active se necesita el tener pulsado de forma continua A0 durante al menos 2 segundos.
2º.-El teclado se mantiene activado durante 5 minutos esperando la acción sobre cualquier tecla, si pasado ese tiempo no se ha detectado ninguna tecla pulsada, el teclado queda desactivado.
3º.- Si se detecta la pulsación de cualquier tecla se activa a correspondiente salida en código BCD por los pines B0 a B3.

Bien me gustaría saber como implementar la función sleep de forma que mientras se esta en espera de los 5 minutos, el pic estuviera dormido y pasado ese tiempo el teclado quedase desactivado, pero que con la acción de cualquier tecla, el pic despertase y ejecutase acción correspondiente a la teca asociada.

Se que para dormir el pic debería de usar un bloque de C con la instrucción: ASM("sleep"); pero no encuentro el lugar apropiado de colocarlo y quizás usar un pin de B4 a B7 por cambio de estado para sacarlo del reposo. Pero no encuentro la forma de realizarlo.

¿Podrían ayudarme con este problema?

Muchas Gracias de antemano
Attachments
EMISOR_8_CANALES.fcfx
(41.79 KiB) Downloaded 8 times

Post Reply