En la
entrada dedicada al conversor AD vimos como optimizar el código ejemplo del compilador de C18. Aprovechando las características
especificas de cada controlador, usando macros en vez de llamadas a funciones,
etc. conseguimos que el tiempo necesario para una conversión bajase desde unos
50 usec a 25 usec. Eso equivalía a duplicar el posible ritmo de muestreo de
20000 a 40000 muestras por segundo.
En esta
entrada vamos a explorar el uso de interrupciones
junto con el conversor AD.
En primer
lugar veremos como usar la interrupción de un timer para asegurar un ritmo de
muestreo exacto. Posteriormente veremos como usar la interrupción asociada al
ADC para no tener que esperar mientras el conversor realiza su tarea. Esto nos
permitirá liberar gran parte de los recursos del micro, lo que será
especialmente útil si estamos cerca del ritmo de muestreo máximo.
Codigo asociado a esta entrada: adc0_timer.c, adc1_timer.c