Paso 7: interrumpir
incomingAudio = ADCH;
en la función loop() del sketch de Arduino, lo he puesto en una función especial llamada una "rutina de interrupción". El enrutamiento de interrupción se ve así:
{ISR(ADC_vect)}
incomingAudio = ADCH;
}
Piense en ello como un dibujo normal, el Arduino va primero a través de la setup() función entonces comienza el loop(), pero cada 26us (cuando está un nuevo valor de A0) las paradas de Arduino lo que está haciendo en el bucle y hace lo que se encapsula en la rutina de interrupción (en este caso sólo la línea "incomingAudio = ADCH;"). Una vez terminada la rutina de interrupción, el Arduino recoge otra vez donde estaba en el loop() para 26us otro. La rutina de interrupción ejecuta otra vez... esto va a repetir para siempre. Si lo desea, puede leer más sobre Arduino interrumpe aquí.
Este código de interrupción generalmente una mejor forma de la señal de entrada que lo que escribí en el último paso porque sólo actualiza la variable incomingAudio una vez que cada vez que viene un nuevo valor en la lectura. Actualizar la variable varias veces, antes de que el valor ha tenido aún tiempo de cambiar es redundante. También, si usted quiere grabar estos valores usted puede poner el código de almacenamiento en la rutina de interrupción para que sepa que su almacenamiento de información de muestreo es exactamente 38.5 kHz.