C/Visual C - Leer entrada analógica

 
Vista:

Leer entrada analógica

Publicado por alarateo (4 intervenciones) el 12/07/2007 22:48:15
Quería plantearos el siguiente problema. Con un PIC quiero leer, por una de sus entradas a un ADC (que lo tiene integrado el PIC), leer cada, por ejemplo, 10 milisegundos la entrada, ir guardándolo en posiciones de memoria conocidas, para luego, cada 5 segundos, hacer un promedio de las n últimas lecturas... me haríais un gran favor echándome una mano...

gracias!!!
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Leer entrada analógica

Publicado por Nelek (816 intervenciones) el 13/07/2007 09:08:24
Lo quieres hacer todo desde el pic? o lo quieres hacer conectando el pic a un ordenador?

No estoy seguro de si los pics soportan los timers. En VC++ podrias hacerlo con uno o con dos timers.

En un timer (10ms) lees el dato del pic y lo mandas a un vector que te almacene los valores.
Por ejemplo: double Lecturas [500]; //500 posiciones * 10ms = 5s

En el segundo timer de 5 segundos haces el promedio con:

for (int i = 0; i < 500; i++)
{
suma = Lecturas [i];
}
promedio = suma / 500.0

Ahora bien, el como adquieras los datos y demas dependera de la targeta adquisitora y sus drivers...

Si lo quieres hacer todo directamente en el PIC, tienes que tener en cuenta el tiempo que necesita para hacer un ciclo completo del programa y ajustarte como puedas.

Por ejemplo: Yo hice el control de un motor a traves del pc. Tenia los ciclos de un segundo, pero lo reparti en 4 partes de 250ms. En las primeras 3, leia los datos del proceso y los almacenaba, en el 4 ciclo hacia los calculos y presentaba los datos en la pantalla. Asi podia mantener un ciclo continuo y mas preciso que si hubiera hecho todo a cada pasada del programa.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar