Autor Tema: resultados incoherentes al comparar valores analogicos y variables float  (Leído 9309 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado MichaelKnight

  • PIC16
  • ***
  • Mensajes: 154
Re: resultados incoherentes al comparar valores analogicos y variables float
« Respuesta #15 en: 01 de Abril de 2008, 21:15:26 »
para utilizar el conversor de 10 bits debes usar
#DEVICE ADC=10
sino no funcionan los 10 bits

deduzco que por defecto siempre esta activo el de 8bit ¿es asi?

saludos y gracias por todo lo que estoy aprendiendo.

Desconectado pablomanieri

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 639
Re: resultados incoherentes al comparar valores analogicos y variables float
« Respuesta #16 en: 01 de Abril de 2008, 21:35:13 »
efectivamente, sino pones esa directiva, el compilador te toma el conversor con 8 bits

Desconectado migsantiago

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8257
    • Sitio de MigSantiago
Re: resultados incoherentes al comparar valores analogicos y variables float
« Respuesta #17 en: 02 de Abril de 2008, 19:44:26 »
Hola

Como te dice Pablo, corrigiendo la declaración del adc a 10bits debería ya funcionar.

Desconectado gu1llermo

  • Colaborador
  • PIC16
  • *****
  • Mensajes: 217
Re: resultados incoherentes al comparar valores analogicos y variables float
« Respuesta #18 en: 03 de Abril de 2008, 01:38:09 »
Tienes un problema con la compatibilidad de los tipos de datos, y la resolución del conversor AD como te ha dicho migsantiago en varias oportunidades, esta parte de código

...
en la constante conversion hago la siguiente declaracion: const float conversion=5.0/255.0;

en un principio ponia 1024, pero dado que no conseguia que funcionara adecuadamente, pase a hacer esa prueba tonta con 255 y a las mil maravillas.
...

Te funciona porque tienes la resolución a 8 bits, pero puedes colocarla a 10 bits y declarar:
const float conversion=5.0/1024;

Con uno de los dos operandos que tenga el punto ya es suficiente.

Ten siempre "presente" declarar los tipos de variables adecuados para cada quién, por ejemplo si recibes un valor de la conversión AD de 10 bits, no se puede colocar luego en una variable de 8, porque los bits más significativos desaparecen.

Saludos y creo que has tenido ayuda de sobra  :c)