TODOPIC
Microcontroladores PIC => Lenguaje C para microcontroladores PIC => Mensaje iniciado por: DarkVect en 26 de Julio de 2007, 07:52:11
-
Hola, os cuento a ver si me podéis ayudar:
Voy a usar el 16F818 para hacer pruebas con el ADC y resulta que miro el datasheet y veo que tengo disponible como AN desde RA0 (AN0) hasta RB4 (AN4) y que RA5 está compartida con el MCLR pero no puede ser analógica. El otro puerto que tiene este PIC es el B que no dispone de ADC.
PIC16F818 (http://ww1.microchip.com/downloads/en/DeviceDoc/39598e.pdf)
Hasta aquí todo bien. Pero luego abro la librería del CCS y me encuentro que en la configuración del ADC sale lo siguiente:
#define NO_ANALOGS 0x86 // None
#define ALL_ANALOG 0x80 // A0 A1 A2 A3 A5 E0 E1 E2 Ref=Vdd
#define ANALOG_RA3_REF 0x81 // A0 A1 A2 A5 E0 E1 E2 Ref=A3
#define A_ANALOG 0x82 // A0 A1 A2 A3 A5 Ref=Vdd
#define A_ANALOG_RA3_REF 0x83 // A0 A1 A2 A5 Ref=A3
#define RA0_RA1_RA3_ANALOG 0x84 // A0 A1 A3 Ref=Vdd
#define RA0_RA1_ANALOG_RA3_REF 0x85 // A0 A1 Ref=A3
#define ANALOG_RA3_RA2_REF 0x88 // A0 A1 A5 E0 E1 E2 Ref=A2,A3
#define ANALOG_NOT_RE1_RE2 0x89 // A0 A1 A2 A3 A5 E0 Ref=Vdd
#define ANALOG_NOT_RE1_RE2_REF_RA3 0x8A // A0 A1 A2 A5 E0 Ref=A3
#define ANALOG_NOT_RE1_RE2_REF_RA3_RA2 0x8B // A0 A1 A5 E0 Ref=A2,A3
#define A_ANALOG_RA3_RA2_REF 0x8C // A0 A1 A5 Ref=A2,A3
#define RA0_RA1_ANALOG_RA3_RA2_REF 0x8D // A0 A1 Ref=A2,A3
#define RA0_ANALOG 0x8E // A0
#define RA0_ANALOG_RA3_RA2_REF 0x8F // A0 Ref=A2,A3
Qué significa E0...E2? Dónde está AN4? Por qué aparece RA5 si es el MCLR?
Gracias compañeros. Un saludo!
-
Revisa tu CCS. En el mío, el fichero 16F818.h contiene esto:
// Constants used in SETUP_ADC_PORTS() are:
#define NO_ANALOGS 7 // None
#define ALL_ANALOG 0 // A0 A1 A2 A3 A5
#define AN0_AN1_AN2_AN4_VSS_VREF 3 // A0 A1 A2 A4 VRefh=A3
#define AN0_AN1_AN3 4 // A0 A1 A3
#define AN0_AN1_VSS_VREF 5 // A0 A1 VRefh=A3
#define AN0_AN1_AN4_VREF_VREF 0x08 // 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 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 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
-
No fastidies!! Cómo puede ser que esté mal?? He revisado 100 veces que abro el archivo correcto!! jajajaja!!
Alguien me puede subir su archivo del 16F818 y 16F819 que también está mal?
Gracias!!!
-
Ahí los llevas, aunque yo intentaría reinstalar CCS. Si eso está mal, ¿te fías del resto?
-
Hasta ahora no he tenido ningún problema con mi CCS. Siempre compruebo el pinout del PIC con la librería de CCS para segurarme de que los puertos son los correctos, de qué interrupciones tengo disponibles, cuáles son los fuses...
Me parece rarísimo esto que me ha pasado. Intentaré reinstalarlo a ver qué pasa.
Muchas gracias Nocturno!!
Un saludo!!