Autor Tema: Tensiones de referencia  (Leído 2043 veces)

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

Desconectado loverman24

  • PIC12
  • **
  • Mensajes: 66
Tensiones de referencia
« en: 15 de Febrero de 2006, 08:37:00 »
Hola a todos, os comento mi problema:

EStoy usando el ADC de un 16f877A y usando como referencia para la conversion las tensiones que vienen por defecto no tengo ningun problema, es decir, Vref+ VDD y Vref- Vss.

Bien, aqui viene mi pregunta:

Ahora necesito referir Vref- a una tension q no es Vss, una externa. El problema reside que en cuanto escribo en el compilador

setup_adc_ports(RA0_RA1_ANALOG_RA2_REF );

me lanza un mensaje de error de instruccion, sin embargo si coloco

setup_adc_ports(RA0_RA1_ANALOG_RA3_RA2_REF );

no tengo ningun problema.

Mi pregunta es la siguiente:

¿Tengo por fuerza que usar los dos pines como referencia externa si solo quiero usar el Vref-? es decir, no puedo usar una Vref- externa y dejar como Vref+ VDD???

Si no es asi, supongo que no habra mayor problema que el de conectar el pin Vref+ a VDD, es correcto?

Venga muchas gracias

Un saludo

EDITADO:

Vaya, resulta que al querer usar otra entrada mas del ADC:

setup_adc_ports(RA0_RA1_RA4_ANALOG_RA3_RA2_REF);

me salta el mismo error, UNDEFINED INDENTEFIER... que hago mal?

Coloco aqui la cabezera de mi programa

#include <16f877A.h>                    
#device adc=10                              
#fuses XT, NOPROTECT, NOPUT, NOWDT, NOBROWNOUT, NOLVP, NOCPD      
#use delay (clock= 4000000)                
#use rs232(BAUD=19200, BITS=8, PARITY=N, XMIT=PIN_C6, RCV=PIN_C7)

EDITADO:

Vale, por que co.o me da UNDEFINED INDENTEFIER... cuando tan solo pongo

setup_adc_ports(RA4_ANALOG)

y si pongo

setup_adc_ports(RA0_analog) no pasa nada

GRacias

Un saludo

Desconectado EARC

  • Colaborador
  • PIC10
  • *****
  • Mensajes: 35
RE: Tensiones de referencia
« Respuesta #1 en: 15 de Febrero de 2006, 16:40:00 »
Para poder configurar voltajes de referencia, tienes que darle solo las combinaciones posibles para ese microcontrolador, para el 877 debes buscarlos en la hoja de datos, en la explicacion del rigistro ADCON1.

Desconectado vszener

  • Moderador Local
  • PIC24H
  • *****
  • Mensajes: 2395
RE: Tensiones de referencia
« Respuesta #2 en: 15 de Febrero de 2006, 16:42:00 »
Abre el archivo de definiciones del pic que estas usando, vamos cuando declaras el pic.h en dicho archivo estan todas sus posibles configuraciones....


Suerte!!!Giño
· Nos vemos en los bares!!!!!
· Mi Blog: Aqueronte

Desconectado loverman24

  • PIC12
  • **
  • Mensajes: 66
RE: Tensiones de referencia
« Respuesta #3 en: 15 de Febrero de 2006, 17:32:00 »
Hola de nuevo, muchas gracias por la ayuda. A ver que me aclare.

He ido a pic.h y he mirado lo siguiente:

// Constants used in SETUP_ADC_PORTS() are:
#define NO_ANALOGS                           7    // None
#define ALL_ANALOG                           0    // A0 A1 A2 A3 A5 E0 E1 E2
#define AN0_AN1_AN2_AN4_AN5_AN6_AN7_VSS_VREF 1    // A0 A1 A2 A5 E0 E1 E2 VRefh=A3    
#define AN0_AN1_AN2_AN3_AN4                  2    // A0 A1 A2 A3 A5          
#define AN0_AN1_AN2_AN4_VSS_VREF             3    // A0 A1 A2 A5 VRefh=A3              
#define AN0_AN1_AN3                          4    // A0 A1 A3
#define AN0_AN1_VSS_VREF                     5    // A0 A1 VRefh=A3
#define AN0_AN1_AN4_AN5_AN6_AN7_VREF_VREF 0x08    // A0 A1 A5 E0 E1 E2 VRefh=A3 VRefl=A2    
#define AN0_AN1_AN2_AN3_AN4_AN5           0x09    // A0 A1 A2 A3 A5 E0        
#define AN0_AN1_AN2_AN4_AN5_VSS_VREF      0x0A    // A0 A1 A2 A5 E0 VRefh=A3          
#define AN0_AN1_AN4_AN5_VREF_VREF         0x0B    // A0 A1 A5 E0 VRefh=A3 VRefl=A2          
#define AN0_AN1_AN4_VREF_VREF             0x0C    // A0 A1 A5 VRefh=A3 VRefl=A2              
#define AN0_AN1_VREF_VREF                 0x0D    // A0 A1 VRefh=A3 VRefl=A2
#define AN0                               0x0E    // A0
#define AN0_VREF_VREF                     0x0F    // A0 VRefh=A3 VRefl=A2
#define ANALOG_RA3_REF         0x1         //!old only provided for compatibility
#define A_ANALOG               0x2         //!old only provided for compatibility  
#define A_ANALOG_RA3_REF       0x3         //!old only provided for compatibility  
#define RA0_RA1_RA3_ANALOG     0x4         //!old only provided for compatibility
#define RA0_RA1_ANALOG_RA3_REF 0x5         //!old only provided for compatibility
#define ANALOG_RA3_RA2_REF              0x8   //!old only provided for compatibility
#define ANALOG_NOT_RE1_RE2              0x9   //!old only provided for compatibility  
#define ANALOG_NOT_RE1_RE2_REF_RA3      0xA   //!old only provided for compatibility  
#define ANALOG_NOT_RE1_RE2_REF_RA3_RA2  0xB   //!old only provided for compatibility  
#define A_ANALOG_RA3_RA2_REF            0xC   //!old only provided for compatibility  
#define RA0_RA1_ANALOG_RA3_RA2_REF      0xD   //!old only provided for compatibility
#define RA0_ANALOG                      0xE   //!old only provided for compatibility
#define RA0_ANALOG_RA3_RA2_REF          0xF   //!old only provided for compatibility



Por lo que veo, al querer tres entradas y las dos Vref (solo Vref- no se puede pro lo visto), elijo la siguiente posibilidad:

setup_adc_ports (AN0_AN1_AN4_VREF_VREF);

entonces para aclararme, con esta directiva, tengo como entradas ADC la 0 la 1 y la 4, y tengo an2 y an3 como pines para Vref- y Vref+ respectivamente

¿es todo esto correcto??

Muchas gracias por la ayuda

Un saludo

Desconectado vszener

  • Moderador Local
  • PIC24H
  • *****
  • Mensajes: 2395
RE: Tensiones de referencia
« Respuesta #4 en: 15 de Febrero de 2006, 17:37:00 »
Pues los comentarios de las mismas opciones te dice que si, eso si una aclaracion cuando he dicho que mires el pic.h me referia a tu pic a utilizar, en este caso debes mirar el 16f877A.h, supongo que habras hecho eso....


Suerte!!!Giño
· Nos vemos en los bares!!!!!
· Mi Blog: Aqueronte

Desconectado loverman24

  • PIC12
  • **
  • Mensajes: 66
RE: Tensiones de referencia
« Respuesta #5 en: 15 de Febrero de 2006, 17:44:00 »
Si si, mire el 16f877A.h.

Muchas gracias por la ayuda.

Un saludo