Stap 4: blijven...
Stap vier:
Nu is het enige wat dat u hoeft te doen door één van deze waarde uit de spreker stak de tussenpoos van 125uSecs. Dat is 8khz van frequentie thats wat we onze bestanden hebt gecomprimeerd.
Voor deze taak moet u twee timers. Een eigenlijk de golfvorm en andere tijd precies de Putting uit deze 8-bits waarden worden gegenereerd.
Hier is de initialisatie functie waar ik de timer van de 8 bit overloopt op 8khz hebben geïnitieerd. En een ander 16-bits timer voor het genereren van de PWM signaal overeenkomstige uitgang. En ook de ingewijden Timer overflow interrupt in timer masker inschakelen.
DDRB = _BV(PB4) | _BV(PB5);
TCCR1A = _BV(COM1A1) | _BV(WGM10); TCCR1B = _BV(WGM12) | _BV(CS10);
OCR1A = 0;
TCCR0| =(1<
Ik heb 8Mhz interne gesmolten verbrand en de berekeningen werden mismatching. Dus ik maakte de code te gaan ISR op 32khz en aftrad het met behulp van een vlag door 4 om er 8Khz.
Hier is de ISR voor onze code.
ISR(TIMER0_OVF_vect) {sample_count--; als (sample_count == 0) {sample_count = 4; vlag = 0; OCR1A = pgm_read_byte (& zero_samples[sample++]); if(sample>zero_length) monster = 0, vlag = 1; } }
wat het doet is het is het lezen van een door één waarde uit de matrix zero_samples [] en het uit te zetten op Output vergelijkt pin. Het genereren van gelijkwaardige golfvorm naar zero.wav bestand.
Stap vijf:
De golfvorm gegenereerd is een blokgolf en het niet klinkt goed, aangezien er hogere frequenties gekoppeld. Hoe dat uitzoeken? Doorgeven via een low-pass filter en de boom die het signaal zal soepeler is uit, kijk op jezelf enige ruimte.
Fc=1/(2*Pi*Rf*Cf) formule gebruiken. Zet Fc als 8Khz en verkrijgen van de Rf, en
CF-waarden. En zet het direct naar de spreker en zult u uw stem wav geplaatst op luidspreker te horen. Gebruik een audio-versterker voor luidere stem. Gebruik uw varianten en vertel ons hoe groot het ging worden.
Hier ben ik het toevoegen van een zip met een gecompileerde code om te zeggen van de cijfers van 0 tot en met 9. Gebruik het als een voorbeeld.
Dank u.