Autor Tema: Una pregunta con una instrucción en C  (Leído 2900 veces)

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

Desconectado Enigma

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 609
    • www.toroscoleados.com
Una pregunta con una instrucción en C
« en: 27 de Agosto de 2009, 20:47:55 »
Hola que tal amigos... tengo una preguntica, estoy usando el 16f88 con C, entonces bueno, requiero usar sólo los puertos analógicos RA0 y RA1, uso está instrucción  setup_port_a(AN0_TO_AN1_ANALOG);        // Puertos RA0 y RA1 analógicos y bueno cuando lo compilo me da un error en la línea 19,36 pero esa linea está en blanco, pero igual se me sombrea la instrucción anterior, diciendome que esa instrucción no se encuentra identificada, es decir, este es el error... "Undefined identifier AN0_TO_AN1_ANALOG...

Será que está instrcción n o es valida para este pic...?? esto también me había aparecido para el pic 18f4550, y lo resolví colocando la instrucción setup_port_a(AN0_TO_AN2_ANALOG); pero en este caso no puedo hacer lo mismo, porque estoy muy limitada en el número de bits del puerto!!!! y bueno intente hacer la declaración de los puertos analógiucos a pie, es decir, con el #asm y numerar los registros, pero resulta que este pic no tiene para hacer eso.... es decir, no tiene para colocar los puertos analógicos que uno quiera escribiendo directamente en los registros, así como se puede hacer con el 16f877 o con el 4550...

Alguien sabe que de malo tiene esa instrucción???

Atte: Enigma... La llanerita de Guayana ;-)
No hay nada como cabalgar en la sabana y sentir la brisa con olor a mastranto, bosta y ganado. ¡¡O Fortuna, velut luna, status variabilis, semper crescis, aut decrescis, vita detestabili!! Que viva el coleo, la musica LLanera y la gótica!

Desconectado cerebro

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 735
Re: Una pregunta con una instrucción en C
« Respuesta #1 en: 27 de Agosto de 2009, 21:07:31 »
si la instrucción es válida como lo es para cualquier pic...  el tema es como bien te indica el compilador el identificador no esta declarado en el archivo de cabecera (.h) asi que no lo vas a poder utilizar tal como quieras...
Si miras el archivo cabecera vas a ver los siguientes identificadores disponibles

Código: [Seleccionar]
// Constants used in SETUP_ADC_PORTS() are:
#define sAN0             1         //| A0
#define sAN1             2         //| A1
#define sAN2             4         //| A2
#define sAN3             8         //| A3
#define sAN4            16         //| A4
#define sAN5            32         //| B6
#define sAN6            64         //| B7
#define NO_ANALOGS       0         // None
#define ALL_ANALOG      127        // A0 A1 A2 A3 A4 B6 B7

seguramente si lees el datasheet del micro (yo no lo hice  :D...) estos identificadores van a estar relacionados a las posibles combinaciones en el registro de canales del AD del micro, si trabajas en C y queres utilizar la funcion setup_adc_ports () /*que creo que era a la que te referías*/, vas a tener que trabajar con eso. 



No se si era la pregunta  :lol:.

Saludos!!  :mrgreen:
LAS MALVINAS SON ARGENTINAS!

Desconectado Enigma

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 609
    • www.toroscoleados.com
Re: Una pregunta con una instrucción en C
« Respuesta #2 en: 27 de Agosto de 2009, 21:47:23 »
Mier.... :shock: con razón.... aja, pero tengo otra preguntica, y disculpa la molestia, es que rato de entender esto!!! O.k, por lo que veo, tendría que colocar el #define en la cabecera del programa, cierto? muy bien, pero tendría que colocar todos los define de los conversores, o solo podría colocar los define de los conversores qu voy a usar??, es decir, podría hacer esto...

#include <16F88.h>
#device ADC=8                                            //Resolucion de 8 bit en modulo adc
#fuses NOPROTECT,NOCPD,NOLVP,MCLR,INTRC_IO
#use fast_io (A)
#use fast_io (B)
#use delay(clock=4000000)
#include "flex_lcd.c"
#ignore_warnings  ALL
#define sAN0             1         //| A0
#define sAN1             2         //| A1


otra preguntica los números 1, 2,4 8, 16.... es el binario que deberia ir en los registros para que me elija el canal??

Atte: Enigma... La llnerita de Guayana ;-)
No hay nada como cabalgar en la sabana y sentir la brisa con olor a mastranto, bosta y ganado. ¡¡O Fortuna, velut luna, status variabilis, semper crescis, aut decrescis, vita detestabili!! Que viva el coleo, la musica LLanera y la gótica!

Desconectado Enigma

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 609
    • www.toroscoleados.com
Re: Una pregunta con una instrucción en C
« Respuesta #3 en: 27 de Agosto de 2009, 23:03:28 »
Bueno he probado esto, y rayos me sigue dando error la instrucción, coloque la cabecera así:

#include <16F88.h>
#device ADC=8                                            //Resolucion de 8 bit en modulo adc
#fuses NOPROTECT,NOCPD,NOLVP,MCLR,INTRC_IO
#use fast_io (A)
#use fast_io (B)
#use delay(clock=4000000)
#include "flex_lcd.c"
#ignore_warnings  ALL
#define sAN0             1         //| A0
#define sAN1             2         //| A1

Y contrale la instrucción que les dje en el primer post me sigue ando error.... porque será...?

Atte: Enigma... La llnerita de Guayana  ;-)
No hay nada como cabalgar en la sabana y sentir la brisa con olor a mastranto, bosta y ganado. ¡¡O Fortuna, velut luna, status variabilis, semper crescis, aut decrescis, vita detestabili!! Que viva el coleo, la musica LLanera y la gótica!

Desconectado Suky

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 6758
Re: Una pregunta con una instrucción en C
« Respuesta #4 en: 28 de Agosto de 2009, 00:31:58 »
Nop, la manera de configurarlo es la siguiente:

Código: C
  1. setup_adc_ports(sAN0|sAN1|VSS_VDD);

Sin realizar ninguna definición.

Saludos
No contesto mensajes privados, las consultas en el foro

Desconectado Enigma

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 609
    • www.toroscoleados.com
Re: Una pregunta con una instrucción en C
« Respuesta #5 en: 28 de Agosto de 2009, 00:52:21 »
#include <16F88.h>
#device ADC=8                                            //Resolucion de 8 bit en modulo adc
#fuses NOPROTECT,NOCPD,NOLVP,MCLR,INTRC_IO
#use delay(clock=4000000)
#include "flex_lcd.c"
#ignore_warnings  ALL
#define sAN0             0         //| A0
#define sAN1             1         //| A10

//:::::::::::::::::::::::::::::::::::::::::Funciones::::::::::::::::::::::::::::::
void spam(void);
void cero(void);

//:::::::::::::::::::::::::::::::::::::::Variables Globales:::::::::::::::::::::::
float ajustespam=1,ajustecero=0,corriente,presion,presion1;
float ajuste,ADC_ajuste;
int8  band=0;
int16 ADC,ajustes=1,ajustec=0;

//:::::::::::::::::::::::::::::::::::::Programa Principal::::::::::::::::::::::::
void main(void)
{
//::::::::::::::::::::::::::::::::Configura Puertos del PIC::::::::::::::::
     setup_adc_ports(san0);
     setup_adc_ports(san1);

Jejeje probe con esto y me funcionó también....

Voy a probar con la tuya sucky a ver si funciona también.... :)

Atte: Enigma... La llnerita de Guayana   ;-)
No hay nada como cabalgar en la sabana y sentir la brisa con olor a mastranto, bosta y ganado. ¡¡O Fortuna, velut luna, status variabilis, semper crescis, aut decrescis, vita detestabili!! Que viva el coleo, la musica LLanera y la gótica!

Desconectado Enigma

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 609
    • www.toroscoleados.com
Re: Una pregunta con una instrucción en C
« Respuesta #6 en: 28 de Agosto de 2009, 00:56:15 »
Funcionó al pelo!!!! jejejeje tu instrucción me funcionó fino uky, voy a dejar la tuya pues es mucho más corta!!!! jejejeje Gracias por su aporte!!! :D

Atte: Enigma... La llnerita de Guayana    ;-)
No hay nada como cabalgar en la sabana y sentir la brisa con olor a mastranto, bosta y ganado. ¡¡O Fortuna, velut luna, status variabilis, semper crescis, aut decrescis, vita detestabili!! Que viva el coleo, la musica LLanera y la gótica!

Desconectado cerebro

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 735
Re: Una pregunta con una instrucción en C
« Respuesta #7 en: 28 de Agosto de 2009, 10:30:26 »
 :mrgreen: la porción de código que postie esta incluida en 16f88.h, si definís nuevamente los identificadores puede que te tire un error o no.... por eso no hay que definir nada y utilizar la función como indica suky  8)

Saludos
LAS MALVINAS SON ARGENTINAS!

Desconectado Enigma

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 609
    • www.toroscoleados.com
Re: Una pregunta con una instrucción en C
« Respuesta #8 en: 28 de Agosto de 2009, 15:27:55 »
Ahhh o.k... muy buen detalle gracias cerebro!

Atte: Enigma... La llnerita de Guayana ;-)
No hay nada como cabalgar en la sabana y sentir la brisa con olor a mastranto, bosta y ganado. ¡¡O Fortuna, velut luna, status variabilis, semper crescis, aut decrescis, vita detestabili!! Que viva el coleo, la musica LLanera y la gótica!


 

anything