Étape 2: Copiez huit de nos échantillons de 1 bit dans un octet de mémoire.
Bitshifting pour remplir notre espace de stockage de 8 bits.
Une fois que les échantillons ont été convertis en résolution 1-bit que c’est maintenant simplement un cas de passer par ces échantillons convertis et se joindre à eux pour faire une chaîne de 8 bits ; aka 1 octet de stockage.
Cela nécessitera quelques connaissances sur bitshifting, heureusement il existe de nombreuses ressources qui enseignent ce simplement, l’un de ceux qui sont sur le site d’arduino. http://Arduino.cc/en/Reference/Bitshift
L’idée de base est qu’il faut économiser de l’espace sur notre microcontrôleur, où chaque échantillon sonore prend évidemment l’espace...
Nous pourrions avoir un tableau d’entiers pour stocker nos échantillons en mais cela serait un détournement brut de stockage car il faut juste une fraction de cet espace pour stocker notre reproduction audio.
Pour plus d’informations sur le stockage requis pour un int voir site arduino. http://Arduino.cc/en/Reference/int
J’ai choisi de spécifier un unsigned char qui est une valeur 8 bits, soit 1 octet d’espace, mais encore une fois, c’est 8 fois plus grand que ce qu’il faut !
La solution
Obtenir de l’espace alloué en mémoire, nous allons dire pour ce tutoriel, nous avons demandé 1 octet d’espace de stockage de la mémoire, nous procédons comme suit.
- Nous recevons notre premier échantillon audio 1 bit
- Remplissez le bit le moins significatif de notre 1 octet de stockage avec la valeur de notre échantillon audio 1 bit
- Déplacez tous les bits dans nos 1 octet de stockage à travers à gauche de 1 bit
Cet algorithme est répété jusqu'à ce que nous avons rempli un octet de mémoire.
Cela est utile car selon votre microcontrôleur Int peut n’importe quoi d’avoir à dire 16 bits de mémoire même autant que 32 bits. Donc c’est 32 fois plus épuisé que nous aurait nécessité de stockage. Belle économie là !