Stap 2: Kopieer acht van onze stalen 1 bit naar een byte van geheugen.
Bitshifting om te vullen onze opslagruimte 8 bit.
Zodra de monsters zijn omgezet naar een 1-bits resolutie is nu gewoon een geval van gaan door deze geconverteerde monsters en verbinden hen samen om een tekenreeks van 8 bits; aka 1 byte van opslag.
Dit vergt enige kennis op bitshifting, gelukkig zijn er veel bronnen die leren dit gewoon, een van degenen die op de website van arduino. http://Arduino.CC/en/Reference/Bitshift
Het basisidee is dat we besparen ruimte op onze microcontroller, moeten zoals elke geluidsvoorbeeld uiteraard ruimte in beslag neemt...
We hadden een matrix van gehele getallen op te slaan onze monsters in, maar dat zou een bruto misbruik van opslag zoals we moeten gewoon slechts een fractie van die ruimte voor het opslaan van onze audio-weergave.
Zie voor meer informatie over opslag nodig is voor een int arduino website. http://Arduino.CC/en/Reference/int
Ik koos voor het opgeven van een unsigned char die een 8-bit waarde 1 byte van de ruimte is, maar opnieuw dat 8 keer groter is dan wat we nodig hebben!
De oplossing
Wat ruimte in het geheugen toegewezen krijgen, laten we zeggen wij voor deze tutorial 1 byte van opslagruimte opgevraagd uit het geheugen, we gaan als volgt.
- Krijgen we onze eerste Luistervoorbeeld 1 bit
- Vul de minst significante bits van onze 1 byte van de opslag met de waarde van onze Luistervoorbeeld 1 bit
- Verplaats alle van de bits in onze 1 byte van opslag over naar links door 1 bit
Dit algoritme wordt herhaald totdat we hebben opgevuld met één byte van geheugen.
Dit is handig omdat afhankelijk van uw microcontroller een Int kan niets van zeggen 16 bits geheugen zelfs maar liefst 32 bits. Dat zou dus 32 keer meer opslag opgebruikt dan we zouden moeten. Leuk daar opslaan!