Paso 4: continuar...
Paso cuatro:
Ahora lo único que tienes que hacerlo se pone uno por uno de este valor hacia fuera para el altavoz en el intervalo de 125uSecs. Es de 8khz de frecuencia que es lo que hemos comprimido nuestros archivos a.
Necesita dos temporizadores para esta tarea. Uno para generar la forma de onda y otro exactamente el tiempo de poner estos valores de ocho bits.
Esta es la función de inicialización donde he iniciado el temporizador de 8 bits se desborde en 8khz. Y otro temporizador de 16 bits para generar el PWM señal de salida correspondiente. Y también iniciado interrupción desbordamiento de Timer en máscara del temporizador.
DDRB = _BV(PB4) | _BV(PB5);
TCCR1A = _BV(COM1A1) | _BV(WGM10); TCCR1B = _BV(WGM12) | _BV(CS10);
OCR1A = 0;
TCCR0| =(1<
Tengo 8Mhz interno fundido quemado y fueron uniendo mal los cálculos. El código para entrar en ISR a 32khz y me bajó con una bandera por 4 para que sea 8Khz.
Aquí es el ISR para nuestro código.
ISR(TIMER0_OVF_vect) {sample_count-; si (sample_count == 0) {sample_count = 4; la bandera = 0; OCR1A = pgm_read_byte (& zero_samples[sample++]); if(Sample>zero_length) muestra = 0, bandera = 1; } }
lo que hace es es la lectura uno por un valor de la matriz zero_samples [] y ponerlo hacia fuera en la salida comparar pin. Generación de forma de onda equivalente a archivo zero.wav.
Paso cinco:
La forma de onda generada es una onda cuadrada y no suena bien ya que tiene las frecuencias más altas asociadas con él. ¿Cómo resolver eso? Pasarla a través de un filtro de paso bajo y el auge de que la señal será más suave hacia fuera, echa un vistazo a ti mismo en algún ámbito.
Use la fórmula de Fc=1/(2*Pi*Rf*Cf). Poner Fc como 8Khz y obtener la Rf, y
Valores de CF. Y ponerlo directamente al altavoz y vas a escuchar tu voz wav presentada en altavoz. Utilice un amplificador de audio para la voz más ruidosa. Utilizar las variaciones y nos dice cuán grande salió a ser.
Aquí adjunto un zip con el código compilado de decir las cifras del 0 al 9. Usarlo como una muestra.
Gracias.