Paso 2: Copiar ocho de nuestras muestras de 1 bit en un byte de memoria.
Bitshifting para llenar nuestro espacio de almacenamiento de 8 bits.
Una vez que las muestras han sido convertidas a una resolución de 1-bit ahora es simplemente un caso de ir a través de estas muestras se puede convertir y unirlas para formar una cadena de 8 bits; también conocido como 1 byte de almacenamiento.
Esto requerirá de algunos conocimientos sobre bitshifting, afortunadamente hay muchos recursos que enseñan simplemente, uno de los que en la Web de arduino. http://Arduino.CC/en/Reference/Bitshift
La idea básica es que tenemos que ahorrar espacio en nuestro microcontrolador, como cada muestra de sonido obviamente ocupa espacio...
Podríamos tener un array de enteros para almacenar nuestras muestras en pero eso sería un mal uso bruto de almacenamiento de información como tenemos sólo una mera fracción de ese espacio para almacenar nuestra reproducción de audio.
Para más información sobre almacenamiento de información necesario para un int ver página web de arduino. http://Arduino.CC/en/Reference/int
Opté por especificar a un unsigned char que es un valor de 8 bits o 1 byte de espacio, pero otra vez que es 8 veces más grande que lo que necesitamos!
La solución de
Obtener algo de espacio en memoria, vamos a decir para este tutorial nos pidió 1 byte de espacio de almacenamiento de la memoria, procedemos como sigue.
- Conseguimos nuestra primera muestra de audio de 1 bit
- Llene el bit menos significativo de nuestra 1 byte de almacenamiento de información con el valor de nuestra muestra de audio de 1 bit
- mueve todos los bits en nuestro 1 byte de almacenamiento a través de a la izquierda de 1 bit
Ese algoritmo se repite hasta que hemos rellenado de un byte de memoria.
Esto es útil porque dependiendo de su microcontrolador un Int puede tener cualquier cosa, desde decir 16 bits de memoria incluso tanto como 32 bits. Así que eso es 32 veces más espacio de almacenamiento utilizado para arriba que habría requerido. Buen ahorro ahí!