Autor Tema: ADC convirtiendo continuamente  (Leído 2920 veces)

0 Usuarios y 2 Visitantes están viendo este tema.

Desconectado elgarbe

  • Moderadores
  • PIC24H
  • *****
  • Mensajes: 2178
ADC convirtiendo continuamente
« en: 18 de Mayo de 2012, 11:49:35 »
Tengo el siguiente proyecto:
Leo un TPS (sensor de acelerador) con el ADC, en funcion de cuánto acelera el usuario abro más o menos una válvula con un motor PaP.
El tema es que lo estoy tratando de hacer todo por interrupciones, esto es, el ADC continuamente convirtiendo y actualizando un registro con el nuevo valor (incluso teno que hacer algún filtro seguramente). El timer 0 me interrumpe periodicamente para actualizar la posicion de la válvula en funcion del valor del ADC anterior y del nuevo.
Lo que no estoy seguro de como hacer es poner al ADC a convertir constantemente. En los viejos ADC ponía el EOC al START y listo, pero en uC se me complica soldar dicho cable, jeje, hay alguna forma de hacerlo en CCS?

Saludos!
-
Leonardo Garberoglio

Desconectado Suky

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 6758
Re: ADC convirtiendo continuamente
« Respuesta #1 en: 18 de Mayo de 2012, 11:50:53 »
Que microcontrolador?  :?
No contesto mensajes privados, las consultas en el foro

Desconectado elgarbe

  • Moderadores
  • PIC24H
  • *****
  • Mensajes: 2178
Re: ADC convirtiendo continuamente
« Respuesta #2 en: 18 de Mayo de 2012, 13:55:44 »
Que microcontrolador?  :?
Que apurado soy!
16F883
-
Leonardo Garberoglio

Desconectado Suky

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 6758
Re: ADC convirtiendo continuamente
« Respuesta #3 en: 18 de Mayo de 2012, 14:09:12 »
Podes usar el módulo CCP2 en modo comparación para que inicie la conversión al ocurrir la interrupción.


Saludos!
No contesto mensajes privados, las consultas en el foro

Desconectado elgarbe

  • Moderadores
  • PIC24H
  • *****
  • Mensajes: 2178
Re: ADC convirtiendo continuamente
« Respuesta #4 en: 18 de Mayo de 2012, 14:38:45 »
Podes usar el módulo CCP2 en modo comparación para que inicie la conversión al ocurrir la interrupción.
Saludos!
Claro, pero lo que yo quería evitar es tener que decirle al ADC cada cuánto tiempo tiene que convertir. Sino que lo haga solito, sería algo así como en poner dentro de la interrupcion del ADC la instruccion de Arrancar la conversion. Esto es, ni bien termina de hacer una conversion que empieze otra, que no espere a que yo se lo indique. Ya que si yo le doy poco tiempo entre pedidos de conversion está mal y si le doy mucho tiempo entre conversiones pierdo datos de gusto.
Yo antes usaba uC motorola y creo recordar que en ellos se podía configurar para conversion continua.
Si no se puede, entonces usaré tu sugerencia de usar el CCP2.

Saludos!
-
Leonardo Garberoglio

Desconectado MerLiNz

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 2463
Re: ADC convirtiendo continuamente
« Respuesta #5 en: 18 de Mayo de 2012, 14:46:02 »
Creo que se puede activar las conversiones por un timer, es decir, al desbordar el timer activa la conversion, lo que no se es si en este pic sera posible.

Desconectado gera

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 2188
Re: ADC convirtiendo continuamente
« Respuesta #6 en: 18 de Mayo de 2012, 14:55:17 »
El ADC interrumpe cuando termina la conversion. En esa misma interrupcion podes poner que comience con la siguiente conversion.
Saludos!

"conozco dos cosas infinitas: el universo y la estupidez humana. Y no estoy muy seguro del primero." A.Einstein

Desconectado elgarbe

  • Moderadores
  • PIC24H
  • *****
  • Mensajes: 2178
Re: ADC convirtiendo continuamente
« Respuesta #7 en: 18 de Mayo de 2012, 15:47:20 »
El ADC interrumpe cuando termina la conversion. En esa misma interrupcion podes poner que comience con la siguiente conversion.
Saludos!
Es es exactamente lo que quería hacer, pero quería confirmar si es correcto, si no hay problemas de flag o cosas rarras. Vos lo usaste alguna vez así?

Gracias!
-
Leonardo Garberoglio

Desconectado elgarbe

  • Moderadores
  • PIC24H
  • *****
  • Mensajes: 2178
Re: ADC convirtiendo continuamente
« Respuesta #8 en: 18 de Mayo de 2012, 16:24:10 »
Estoy pensando que si pongo el ADC a convertir continuamente me va a interrumpir cada 4uSeg. Es una locura....
Voy a usar el CCP2 para iniciar la conversion...

Case close.

Saludos
-
Leonardo Garberoglio

Desconectado Diego E.

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1086
Re: ADC convirtiendo continuamente
« Respuesta #9 en: 18 de Mayo de 2012, 19:03:48 »
Hola amigo, yo haría lo siguiente, determino cuantas muestras quiero por segundo, si quiero 20 muestras coloco un temporizador y cada 50ms hago una conversión.

Saludos.

Desconectado MerLiNz

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 2463
Re: ADC convirtiendo continuamente
« Respuesta #10 en: 18 de Mayo de 2012, 19:43:44 »
Con un pic con DMA podrias hacerlo facilmente, pero te tendrias que ir a 16bits  :lol: yo tengo un proyecto donde hago el muestreo de 16 canales con un adc externo, mediante spi, los 16 canales los muestrea en 35us, sin contar que no tengo que hacer nada para iniciarlo, ni nada para leer los resultados, yo activo el spi, el dma, y este se encarga de actualizarme el array de 16 canales sin que tenga que atender nada, cuando me interese saber que V hay en el canal 0 pues canal[0]  :-/

Desconectado Suky

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 6758
Re: ADC convirtiendo continuamente
« Respuesta #11 en: 18 de Mayo de 2012, 19:54:28 »
Igualmente por lo visto no quiere alta velocidad de muestreo sino que se haga a una frecuencia determinada pero automáticamente. Para eso repito, podes usar el CCP2 que lo activa automáticamente o un timer y crear el código necesario.


Saludos!
No contesto mensajes privados, las consultas en el foro

Desconectado elgarbe

  • Moderadores
  • PIC24H
  • *****
  • Mensajes: 2178
Re: ADC convirtiendo continuamente
« Respuesta #12 en: 19 de Mayo de 2012, 11:44:24 »
Igualmente por lo visto no quiere alta velocidad de muestreo sino que se haga a una frecuencia determinada pero automáticamente. Para eso repito, podes usar el CCP2 que lo activa automáticamente o un timer y crear el código necesario.
Saludos!
Exacto, eso es lo que quiero, que se haga automáticamente y como bien dices no necesito muchas muestras, estuve haciendo pruebas con la válvula y necesito un retardo mínimo de 1ms entre cada paso del motor, por lo que si al variar el TPS necesito mover unos 10 pasos me va a llevar 10mseg. Con tener 1 valor del ADC cada 1 mseg me sobra.... No tenía ese dato hasta hace un rato, sino....

Saludos y gracias!
-
Leonardo Garberoglio


 

anything