Una duda que me surgió. El ADC tiene una capacidad de conversión de 200KHz, pero me resulta poco creible. Serían 200000 conversiones por segundo, es raro.
El fabricante asegura que el ADC puede muestrear a 200kHz, es decir que c/conversión le tome 5uS, no lo veo imposible. En el DAC por ej. comprobé que la velocidad que alcanzaba era mayor a la que declaraba el fabricante.
Siguiendo tu código vos habilitas un timer0 para que pregunte si hay conversión de ADC
configura_timer0(25000,1000);
Por lo que estuve leyendo este timer interrumpe cada un segundo, es así?
Si, porque el clock del timer será de 25MHz (1/4 del core-clk que está en 100MHz después de configurar el PLL) => el pre-escaler interno del timer lo configuro en en 25000 dando un clk c/1mSeg => luego configuro la cuenta de match en 1000 => 1000*1 mSeg=1 Seg
Luego configuras el adc:
(convertir_adc(0,250,&valor_adc)>0)
Aca los estarías configurando a 100KHz?
Si, el tiempo de conversión del ADC será de 10 uS, es decir una vez que pase el segundo por el timer0, el ADC solo tardará 10 uS en obtener una nueva conversión.
La variable valor_adc es un "unsigned int" (al ser el ADC de 12 bits, me alcanza con este tipo de variables) que lo paso por referencia mediante su dirección, de esta forma me ahorro trabajar con variables globales y obtengo el resultado de la conversión en esa variable. ¿Podría trabajar con una variable de 32 bits?, si y al uC le dá igual, solo que pedís un poco más de RAM.
Última edición: