Page 1 of 1

Funcionamiento de contador con sleep

Posted: Mon Oct 26, 2020 9:58 pm
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

Re: Funcionamiento de contador con sleep

Posted: Sat Jan 16, 2021 1:02 pm
by Fer_taca
Hola amigos:
Después de un breve tiempo alejado de la programación por motivos de salud (maldito Vovid-19), vuelvo a retomar el asunto del proyecto que adjunte al inicio.

Si bien este proyecto está funcionando correctamente, me gustaría añadirle una mejora para que las pilas/batería durasen más tiempo. Había pensado en la utilización del modo sleep tal y como indique en el proyecto original del primer post.

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.

Para intentar comprender mejor el funcionamiento y uso de esta instrucción dentro de Flowcode, he creado un programa mas simple, de forma que se lee de forma constante el estado de un pulsador y de acuerdo a ese estado se actúa sobre una salida.

¿Podrían ayudarme con este problema?


Muchas Gracias de antemano

Re: Funcionamiento de contador con sleep

Posted: Mon Jan 18, 2021 8:29 pm
by Fer_taca
Ya lo solcioné.
Escribía mal el código dentro del bloque C.
Adjunto el fichero por si le puede ayudar a otra persona.

F.