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
Funcionamiento de contador con sleep
Moderator: Benj
Funcionamiento de contador con sleep
- Attachments
-
- EMISOR_8_CANALES.fcfx
- (41.79 KiB) Downloaded 234 times
Re: Funcionamiento de contador con sleep
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
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
- Attachments
-
- Ejemplo_sleep.fcfx
- (10.12 KiB) Downloaded 204 times
Re: Funcionamiento de contador con sleep
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.
Escribía mal el código dentro del bloque C.
Adjunto el fichero por si le puede ayudar a otra persona.
F.
- Attachments
-
- Ejemplo_V1_2.fcfx
- (16.15 KiB) Downloaded 247 times