Dos funciones a la vez pic16f887

#1
Hola que tal, tengo un problema con un proyecto, necesito generar una melodía y a su vez que se muestre en una matriz de puntos el nombre de dicha melodía, tengo ambas secciones de código pero por separado, si alguien me pudiese ayudar con alguna idea de cómo poder hacer que suene y a la vez salga el nombre de dicha melodía se lo agradecería mucho.


FELIZ NAVIDAD PARA TODOS ...
 
#3
Para empezar borra todos los delays y en su lugar usa interrupciones. Lo más probable es que ahora te sobre tiempo para esas dos tareas y una docena más.
 
#6
En forma muy simplificada, se programa un temporizador para que genere interrupciones periodicas. La interrupcion enciende banderas, que, en el lazo principal, le indican al programa que actualice un caracter en el LCD o que saque otra muestra por el puerto para tocar una nota.

Hace un ejemplo simple de temporizador por interrupciones y le iras tomando la mano.

Lo importante es que recuerdes que la rutina de la interrupcion en si debe ser muy simple y alli no se hace casi nada, solo se encienden banderas como para que el trabajo periodico ( y "pesado") se realice en el bucle principal del programa.
 
#7
Ya que estás para el nuevo año apuntas no volver a usar delays nunca más.
Lo fastidian todo. Son la octava plaga.
Voy a hacer un club antidelays.

Como no has querido enseñarnos que has hecho no podemos adivinar como arreglarlo. En general olvida los delays para siempre, en su lugar programas un timer con el tiempo deseado y cuando salte la interrupción haces lo que tengas que hacer. Mientras tanto tienes toda una eternidad para hacer"lo otro". Piensa que por cada ms de delay puedes hacer varios miles de cosas en lugar de dormir.
 
Última edición:
Arriba