0% encontró este documento útil (0 votos)
91 vistas3 páginas

Generación de Sonido con Librería Sound

El documento describe cómo generar sonidos usando funciones de la librería Sound. Se definen funciones para reproducir tonos individuales y melodías usando diferentes frecuencias. Los botones RB7-RB4 se usan para reproducir tonos y melodías al pulsarlos.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
91 vistas3 páginas

Generación de Sonido con Librería Sound

El documento describe cómo generar sonidos usando funciones de la librería Sound. Se definen funciones para reproducir tonos individuales y melodías usando diferentes frecuencias. Los botones RB7-RB4 se usan para reproducir tonos y melodías al pulsarlos.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd

Generación de sonido, librería de sonido...

Las señales de audio se utilizan con frecuencia cuando se necesita


llamar la atención de usuario, confirmar que alguno de los botones se ha
pulsado, avisar que se ha llegado hasta los valores mínimos o máximos
etc. Pueden ser una simple señal de pitido así como melodías de una
duración más larga o más corta. En este ejemplo se muestra la
generación de sonido por medio de funciones que pertenecen a la
librería Sound.

Además de estas funciones, la función Button que pertenece a la misma


librería se utiliza para probar los botones de presión.
/*Cabecera******************************************************/

void Tone1() {
Sound_Play(659, 250); // Frecuencia = 659Hz, duración = 250ms
}

void Tone2() {
Sound_Play(698, 250); // Frecuencia = 698Hz, duración = 250ms
}

void Tone3() {
Sound_Play(784, 250); // Frecuencia = 784Hz, duración = 250ms
}

void Melody1() { // Componer una melodía divertida 1


Tone1(); Tone2(); Tone3(); Tone3();
Tone1(); Tone2(); Tone3(); Tone3();
Tone1(); Tone2(); Tone3();
Tone1(); Tone2(); Tone3(); Tone3();
Tone1(); Tone2(); Tone3();
Tone3(); Tone3(); Tone2(); Tone2(); Tone1();
}

void ToneA() { // Tono A


Sound_Play( 880, 50);
}

void ToneC() { // Tono C


Sound_Play(1046, 50);
}

void ToneE() { // Tono E


Sound_Play(1318, 50);
}

void Melody2() { // Componer una melodía divertida 2


unsigned short i;

for (i = 9; i > 0; i--) {


ToneA(); ToneC(); ToneE();
}
}

void main() {
ANSEL = 0; // Todos los pines de E/S son digitales
ANSELH = 0;
TRISB = 0xF0; // Pines RB7-RB4 se configuran como entradas

// RB3 se configura como salida


Sound_Init(&PORTB, 3);
Sound_Play(1000, 500);

while (1) {
if (Button(&PORTB,7,1,1)) // RB7 genera Tono1
Tone1();
while (PORTB & 0x80) ; // Esperar que se suelte el botón
if (Button(&PORTB,6,1,1)) // RB6 genera Tono2
Tone2();
while (PORTB & 0x40) ; // Esperar que se suelte el botón
if (Button(&PORTB,5,1,1)) // RB5 genera melodía 2
Melody2();
while (PORTB & 0x20) ; // Esperar que se suelte el botón
if (Button(&PORTB,4,1,1)) // RB4 genera melodía 1
Melody1();
while (PORTB & 0x10) ; // Esperar que se suelte el botón
}
}

Para que este ejemplo funcione apropiadamente, es necesario marcar


las siguientes librerías en la ventana Library Manager antes de compilar
el programa:
 Button
 Sound

También podría gustarte