Problema 5: Generador de Sonido: Rutina Descripción
Problema 5: Generador de Sonido: Rutina Descripción
Para accionar la nota en cada canal hay que acceder al registro de control (0400 04X0) y al
registro de timer (0400 04X4) del canal especificado, donde X es el número de canal como
dígito hexadecimal (de 0 a F). Los campos de dichos registros significan lo siguiente:
SOUND_X_CNT – SOUND Channel X Control Register (32 bits)
Bits Campo Descripción
6..0 Volume Nivel de volumen, de 0 a 127 (0 es silencio)
28..27 Repeat Mode 01: bucle infinito, 10: una vez
31 Start / Stop 0: Parar, 1: iniciar
13
Colección de problemas Computadores (URV)
Para cada nota se debe utilizar una estructura de información con los siguientes campos:
typedef struct {
short freq; // frecuencia de la nota (Hz)
short time; // tiempo de la nota (centésimas de segundo)
short vol; // volumen de la nota (0..127)
} info_note;
Todas las notas a tocar se encuentran en un vector con un número de posiciones igual a una
constante MAX_NOTAS:
info_note musica[MAX_NOTAS];
14