SDCC - Lib Sound
Página 1 de 1.
SDCC - Lib Sound
Saludos compañeros del foro, aquí esta mi primer aporte a la comunidad....
Es una librería a la que llame "Sound", la cual permite reproducir una nota musical con su octava y con una duración elegida, el archivo .h esta comentado para auto entenderse si embargo aquí pongo un código de ejemplo de como usarla.
Lo primero es tener una librería de retardos la del foro esta bien sin embargo e añadido unos cambios pequeños a dicha librería así que también la adjunto en el código, hay un vídeo en función de la librería y una simulación en proteus 7.8 sp2.
Hay que definir el pin de salida por el cual saldrá el sonido se hace definiendo la macro Speaker de la siguiente forma #define Speaker RA0.
Donde RA0 es el pin de salida del sonido y luego llamar a la función play_sound que recibe la nota que se quiere tocar luego la octava de la nota y por ultimo el tiempo en US que durara la nota.
Sin mas el código fuente de ejemplo:
- Código:
#include<pic16f628a.h>
#include<libs/delay.h>
/*
Toca una alarma, la cancion din don dan y la cancion cumpleaño feliz version español.
Por el pin RA2, usa 3 pulsadores.
*/
//Pin para la salida del sonido, por default en la libreria es RA0
#define Speaker RA2
#include<libs/sound.h>
unsigned int __at _CONFIG CONFIG = _CP_OFF & _BODEN_OFF & _MCLRE_OFF & _WDT_OFF & _PWRTE_ON & _INTOSC_OSC_NOCLKOUT & _LVP_OFF;
void main(void){
unsigned char i;
CMCON = 0b00000111;
TRISA = 0b11000010;
for(;;){
if( !RA1 ){
//Alarma
for( i=0; i<5; i++ ){
//Parametros, la Nota, La escala en octava, tiempo que dura la nota en milisegundos
play_sound( nSI, 7, 90 );
play_sound( nFA, 7, 60 );
}
}else if( !RA6 ){
//Cumpleaño Feliz
play_sound( nDO, 7, 45 );
play_sound( nDO, 7, 15 );
play_sound( nRE, 7, 60 );
play_sound( nDO, 7, 60 );
play_sound( nFA, 7, 60 );
play_sound( nMI, 7, 120 );
play_sound( nDO, 7, 45 );
play_sound( nDO, 7, 15 );
play_sound( nRE, 7, 60 );
play_sound( nDO, 7, 60 );
play_sound( nSOL, 7, 60 );
play_sound( nFA, 7, 120 );
play_sound( nDO, 7, 45 );
play_sound( nDO, 7, 15 );
//////////////////////////
play_sound( nDO_, 7, 60 );
play_sound( nLA, 7, 60 );
play_sound( nFA, 7, 60 );
play_sound( nMI, 7, 60 );
play_sound( nRE, 7, 60 );
play_sound( nSI, 7, 45 );
play_sound( nSI, 7, 15 );
play_sound( nLA, 7, 60 );
play_sound( nFA, 7, 60 );
play_sound( nSOL, 7, 60 );
play_sound( nFA, 7, 120 );
}else if( !RA7 ){
//DinDonDan- No es el timbre es la cancion
for( i=0; i<3; i++ ){
play_sound( nSOL, 7, 60 );
play_sound( nMI, 7, 60 );
play_sound( nSOL, 7, 30 );
play_sound( nSOL, 7, 30 );
play_sound( nMI, 7, 60 );
play_sound( nSOL, 7, 30 );
play_sound( nSOL, 7, 30 );
play_sound( nMI, 7, 30 );
play_sound( nMI, 7, 30 );
play_sound( nSOL, 7, 30 );
play_sound( nSOL, 7, 30 );
play_sound( nMI, 7, 120 );
}
}
}
}
Aquí el link de descarga de la librería, una simulación en proteus y el código fuente del ejemplo.
https://drive.google.com/folderview?id=0B30dNdsbR-LlbEVmTzNHckE0REU&usp=sharing
Un video de la libreria en accion
Nota: La librería es la idea de una persona que encontré en la web, yo hice cambios y adaptaciones para poder usarla en SDCC, esta bajo licencia GPL.
Cabe destacar que hay que saber leer una partituras musicales para armar su sonido, si alguien le interesa puedo hacer un tuto .. jeje dejen los comentarios.
Disfrútenla, dudas, consejos, inquietudes no duden en dejarlas.. hasta pronto.
Iader Camilo- Nuevo Usuario
- Mensajes : 7
Fecha de inscripción : 02/09/2013
Edad : 33
Localización : Colombia
Página 1 de 1.
Permisos de este foro:
No puedes responder a temas en este foro.