Muestreo de señal seno con el PIC18f2550

yo uso java y la grafica la hace bien, no se como funcione bview la verdad es que estoy en esos momento en los que al parecer funciona tu amplicación pero no sabes si realmente funciona jajaja
yo hice una función que s esta:

void Ejecutar_ADC (void){
set_adc_channel(0);
delay_us(10);
Dato_adc =read_adc(); // Muestrear para mayor estabilidad en la lectura.
USB_ACD_RA0_A = Dato_adc >> 8;
USB_ACD_RA0_B = Dato_adc & 0xFF;

set_adc_channel(1);
delay_us(10);
Dato_adc = read_adc(); // Muestrear para mayor estabilidad en la lectura.
USB_ACD_RA1_A = Dato_adc >> 8;
USB_ACD_RA1_B = Dato_adc & 0xFF;
}

uso 2 canales ADC espero 10 us en cada convención suponiendo el tiempo que tarda en leer y convertir, mas el tiempo que tarda en seccionar los 10 bits en 2 bytes y guardarlos en las variables
son unos 15 us sobre lectura, en este caso son 2 lecturas 2 canales y la frecuencia de muestreo total se divide sobre 2,
de modo que si asumimos 15 us sobre lectura * 2 lectura(dos canales) 30 us
es apx 33,333,333 muestras por segundo.... osea 33.3333Khz?
en mi caso la frecuencia mas alta a medir es 500Hz asi que me sobra y me basta,
ahora para que sea un muestreo mas preciso usar un timer es mejo no creen?
guardar las muestras en un arreglo de bytes de 64 bytes para aprovechar el bulktrasfer
que como cada conversión con 2 bytes entonces cada vez que la aplicación pida el bufer
al pic este mandará 32 muestras, en mi caso mi aplicación en java pide muestras cada 100 ms
y en la aplicación son seria algo como 3khz de muestreo graficado tomando encuenta el tiempo que tarda en trasformar los bytes en enteros y graficar las coordenadas según mis cálculos en la grafica de mi app se puede dibujar el muestreo a 3khz lo cual basta en mi caso para graficar adecuadamente mi señal que es de max 500Hz
 
Atrás
Arriba