Autor Tema: Problemas para compilar en C un proyecto de RADON  (Leído 6209 veces)

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

Desconectado arex

  • PIC10
  • *
  • Mensajes: 10
Problemas para compilar en C un proyecto de RADON
« en: 22 de Agosto de 2008, 09:08:09 »
Hola estoy trabajando en un proyecto muy similar al que realizo RADON de una insoladora. He visto que publicó un magnifico programa en "C" para controlar un micro y hacer un temporizador entre otras cosas. Bien pues el caso esque yo uso como compilador el MPLAB, que es el que usaba en clase, y cuando e cogido su ".C" y lo he introducido en mi compilador me da errores de compilación, por ejemplo no conoce las instruciones: #use fast.....  o 
#fuses XT,NOWDT,PUT,NODEBUG, NOPROTECT,NOBROWNOUT,NOLVP..... y luego tambien en estas lineas:  #include <TONES.C>  creo que esta incluyendo una libreria o programa creado anteriormente lo cual yo no tengo.

Yo me imagino que esto sucede por que cada compilador tiene distientas expresiones  yo por ejemplo en include no lo puedo poner como lo pone el, entonces la cuestion es si alguien sabe con que compilador se ha realizado, para hacerlo con el mismo, o si sería tan amable de explicarme como ponerlo en el MPlab.

Bueno chicos, gracias por todo, y un saludo a todos que soy nuevo por el foro.

PD: Aqui os pongu su magnifico programa

//*******************************************************************
//* Temporizador para insoladora, 4 displays 7 segmentos mux
//* *****************************************************************
//* Por Daniel González, Dic 2005 RADON
//********************************************************************

#include <16F876.h>
#fuses XT,NOWDT,PUT,NODEBUG, NOPROTECT,NOBROWNOUT,NOLVP
#use delay (clock=4000000) // 1uS/instrucción

#include <TONES.C> // Zumbador
#include <internal_eeprom.c>

#use fast_io(A)
#use fast_io(B)
#use fast_io(C)

#byte port_a = 5
#byte port_b = 6
#byte port_c = 7

#define Rele_On output_high(PIN_A5) // Se usará para conmutar la luz
#define Rele_Off output_low(PIN_A5)

#define Rele2_On output_high(PIN_B1) // Se usará para conmutar el ventilador
#define Rele2_Off output_low(PIN_B1)

#define Disp1_On output_high(PIN_A0) // Disp izq
#define Disp1_Off output_low(PIN_A0)
#define Disp2_On output_high(PIN_A1)
#define Disp2_Off output_low(PIN_A1)
#define Disp3_On output_high(PIN_A2)
#define Disp3_Off output_low(PIN_A2)
#define Disp4_On output_high(PIN_A3)
#define Disp4_Off output_low(PIN_A3) // Disp drcha

#define Puls_Amarillo PIN_B7 //+1
#define Puls_Blanco PIN_B6 //-1
#define Puls_Verde PIN_B5 // OK, Aceptar
#define Puls_Rojo PIN_B4 // Siguiente

#define antirebotes 50 // para los delays antirebotes en ms


// Código para los displays 7-segmentos **************************************
#define cero 0x3F
#define uno 0x06
#define dos 0x5B
#define tres 0x4F
#define cuatro 0x66
#define cinco 0x6D
#define seis 0x7D
#define siete 0x07
#define ocho 0x7F
#define nueve 0x6F

#define a7 0x77
#define b7 0x7C
#define c7 0x39
#define d7 0x5E
#define e7 0x79
#define f7 0x71
#define g7 0x3D
#define h7 0x76
#define i7 0x06
#define j7 0x1F
#define l7 0x38
#define n7 0x54
#define o7 0x5C
#define p7 0x73
#define q7 0x67
#define r7 0x50
#define s7 0x6D
#define t7 0x78
#define u7 0x3E
#define punto 0x80
#define espacio 0x00
#define fin_mensaje 0xFF
//****************************************************************************

int1 fin_cuenta;
unsigned int16 i;
unsigned int8 min_x10=0, min=0, seg_x10=0, seg=0;
unsigned int8 contador=125, display=1, caras=1;


//*** carácteres y digitos 7-segmentos ***
// Para el correcto funcionamiento de las librerías, los vectores de mensajes
// deben acabar por "fin_mensaje" (0xFF)
int mensaje[35];
const int numeros[]={cero,uno,dos,tres,cuatro,cinco,seis,siete,ocho,nueve};
const int bienvenida[]={i7,n7,s7,o7,l7,a7,d7,o7,r7,a7,espacio,p7,o7,r7,espacio,
d7,a7,n7,i7,e7,l7,espacio,g7+punto,espacio,espacio,fin_mensaje};
const int calentar[]={c7,a7,l7,e7,n7,t7,a7,n7,d7,o7+punto,espacio,a7,c7,c7,e7,p7,t7,a7,r7,
espacio,p7,a7,r7,a7,espacio,a7,c7,a7,b7,a7,r7+punto,espacio,
espacio,fin_mensaje};
const int una_cara[]={uno,espacio,c7,a7,r7,a7+punto,espacio,espacio,fin_mensaje};
const int dos_caras[]={dos,espacio,c7,a7,r7,a7,s7+punto,espacio,espacio,fin_mensaje};
const int msj_listo[]={l7,i7,s7,t7,o7+punto,punto,punto,espacio,espacio,fin_mensaje};
const int msj_segunda_cara[]={s7,e7,g7,u7,n7,d7,a7,espacio,c7,a7,r7,a7+punto,espacio,espacio,fin_mensaje};

#INT_RTCC
void control_rtcc(void)
{
  set_timer0(131);
  if(contador == 0){
    contador = 125;
    if(seg > 0){
      --seg;
    }
    else{
      if(seg_x10 > 0){
        --seg_x10;
        seg = 9;
      }
      else{
        if(min > 0){
          --min;
          seg_x10 = 5;
          seg = 9;
        }
        else{
          if(min_x10 > 0){
            --min_x10;
            min = 9;
            seg_x10 = 5;
            seg = 9;
          }
          else{
            fin_cuenta = 1;
          }
        }
      }
    }
  }
  --contador;
}

#INT_RB
void control_rb(void){
  if(!input(Puls_Amarillo)){ // +1
    switch(display){
      case 1: if(min_x10 < 9) ++min_x10;
              else min_x10 = 0;
              break;
      case 2: if(min < 9) ++min;
              else min = 0;
              break;
      case 3: if(seg_x10 < 5) ++seg_x10;
              else seg_x10 = 0;
              break;
      case 4: if(seg < 9) ++seg;
              else seg = 0;
              break;
    }
    while(!input(Puls_Amarillo));
    delay_ms(antirebotes);
  }
  if(!input(Puls_Blanco)){ // -1
    switch(display){
      case 1: if(min_x10 > 0) --min_x10;
              else min_x10 = 9;
              break;
      case 2: if(min > 0) --min;
              else min = 9;
              break;
      case 3: if(seg_x10 > 0) --seg_x10;
              else seg_x10 = 5;
              break;
      case 4: if(seg > 0) --seg;
              else seg = 9;
              break;
     }
     while(!input(Puls_Blanco));
     delay_ms(antirebotes);
  }
  if(!input(Puls_Verde)){
    if(display < 4) ++display;
    else display = 1;
    while(!input(Puls_Verde))
    delay_ms(antirebotes);
  }
}

void alarma(void){
  int1 sw=0;
  while(1){
    generate_tone(3000,100);
    if(!input(Puls_Verde) || !input(Puls_Rojo)){
      while(!input(Puls_Verde) || !input(Puls_Rojo))
      delay_ms(antirebotes);
      return;
    }
    generate_tone(4000,100);
    if(!input(Puls_Verde) || !input(Puls_Rojo)){
      while(!input(Puls_Verde) || !input(Puls_Rojo))
      delay_ms(antirebotes);
      return;
    }
    delay_ms(100);
    if(!input(Puls_Verde) || !input(Puls_Rojo)){
      while(!input(Puls_Verde) || !input(Puls_Rojo))
      delay_ms(antirebotes);
      return;
    }
  }
}

void pinta_disp1(int x){
  port_c = x;
  Disp1_On;
  delay_ms(2);
  Disp1_Off;
}

void pinta_disp2(int x){
  port_c = x;
  Disp2_On;
  delay_ms(2);
  Disp2_Off;
}

void pinta_disp3(int x){
  port_c = x;
  Disp3_On;
  delay_ms(2);
  Disp3_Off;
}

void pinta_disp4(int x){
  port_c = x;
  Disp4_On;
  delay_ms(2);
  Disp4_Off;
}

// Esta función rota un mensaje en los displays 7 segmentos, el último
// elemento del array deberá ser 0xFF (siendo estos los valores para los displays),
// acepta:
// el 1º un entero, como retardo de la rotacion (recomendado 35)
// 2º si puede devolver el boton amarillo
// 3º si puede devolver el boton blanco
// 4º si puede devolver el boton ver
// y 5º si puede devolver el boton rojo
// y retorna cuando se presiona un pulsador:
// "0" amarillo, "1" blanco, "2" verde y "3" rojo
int rotar_mensaje(int retardo, int1 amarillo, int1 blanco, int1 verde, int1 rojo){
//int1 sw_rotar_mensaje=1;
unsigned int8 no_caracteres=0;
unsigned int8 letra1=0, letra2=1, letra3=2, letra4=3; //4 displays, 4 letras mux simultaneamente
while(mensaje[no_caracteres] != 0xFF){
  ++no_caracteres; // cuenta el nº de carácteres a rotar
}
while(1){
  for(i=0;i<=retardo;++i){
    pinta_disp1(mensaje[letra1]);
    pinta_disp2(mensaje[letra2]);
    pinta_disp3(mensaje[letra3]);
    pinta_disp4(mensaje[letra4]);
    if(!input(Puls_Amarillo) || !input(Puls_Blanco) || !input(Puls_Verde) || !input(Puls_Rojo)){ // si pulso algo
      if(!input(Puls_Amarillo) && amarillo == 1){
        while(!input(Puls_Amarillo) && blanco == 1); // espera que suelte el pulsador
        delay_ms(antirebotes); // antirebote
        return 0;
      }
      if(!input(Puls_Blanco) && blanco == 1){
        while(!input(Puls_Blanco));
        delay_ms(antirebotes);
        return 1;
      }
      if(!input(Puls_Verde) && verde == 1){
        while(!input(Puls_Verde));
        delay_ms(antirebotes);
        return 2;
      }
      if(!input(Puls_Rojo) && rojo == 1){
        while(!input(Puls_Rojo));
        delay_ms(antirebotes);
        return 3;
      }
    }
  }
  if(letra1 < no_caracteres-1) ++letra1; // (-1) en el array el "0" es el primer elemento
  else letra1 = 0;
  if(letra2 < no_caracteres-1) ++letra2;
  else letra2 = 0;
  if(letra3 < no_caracteres-1) ++letra3;
  else letra3 = 0;
  if(letra4 < no_caracteres-1) ++letra4;
  else letra4 = 0;
 }
}

void mensaje_inicio(void){
  unsigned int no_caracteres = 0;
  while(bienvenida[no_caracteres] != 0xFF){
    ++no_caracteres; // cuenta el nº de carácteres del array "una_cara"
  }
  for(i=0;i<=no_caracteres;++i){ // Copiamos el array "una_cara" a "mensaje"
                                 // 1er elemento
  • --> copiamos inclusive 0xFF (marca final)

    mensaje = bienvenida;
  }
  rotar_mensaje(35,0,0,0,1); // Solo acaba al pulsar rojo (GO)
}

void calentar_bombillas(void){
  unsigned int no_caracteres = 0;
  Rele_On;
  while(calentar[no_caracteres] != 0xFF){
    ++no_caracteres; // cuenta el nº de carácteres del array "calentar"
  }
  for(i=0;i<=no_caracteres;++i){ // Copiamos el array "calentar" a "mensaje"
                                 // 1er elemento
  • --> copiamos inclusive 0xFF (marca final)

    mensaje = calentar;
  }
  rotar_mensaje(35,0,0,1,0);
  Rele_Off;
}

void selec_tiempo(void){
  int1 sw = 0;
  if(read_eeprom(0) >=0 && read_eeprom(0) <= 9) min_x10 = read_eeprom(0); //comprueba la ultima temporizacion
  if(read_eeprom(1) >=0 && read_eeprom(1) <= 9) min = read_eeprom(1);
  if(read_eeprom(2) >=0 && read_eeprom(2) <= 5) seg_x10 = read_eeprom(2);
  if(read_eeprom(3) >=0 && read_eeprom(3) <= 9) seg = read_eeprom(3);
  enable_interrupts(INT_RB);
  do{
    for(i=0; i<20;++i){
      if(display == 1 && sw == 0) pinta_disp1(0);
      else pinta_disp1(numeros[min_x10]);
      if(display == 2 && sw == 0) pinta_disp2(punto);
      else pinta_disp2(numeros[min]+punto);
      if(display == 3 && sw == 0) pinta_disp3(0);
      else pinta_disp3(numeros[seg_x10]);
      if(display == 4 && sw == 0) pinta_disp4(0);
      else pinta_disp4(numeros[seg]);
      if(!input(Puls_Rojo)) break; // si pulsa rojo, sale sin esperar a terminar el for
    }
    if(sw == 1) sw = 0;
    else sw = 1;
  } while(input(Puls_Rojo));
  while(!input(Puls_Rojo)); // espera a que suelte
  delay_ms(antirebotes); //antirebotes
  disable_interrupts(INT_RB);
  write_eeprom(0,min_x10); //guarda la temporización en la eeprom
  write_eeprom(1,min); //para recuperarla la próxima vez
  write_eeprom(2,seg_x10);
  write_eeprom(3,seg);
}

void selec_caras(void){
  int8 pulsador = 0;
  unsigned int no_caracteres = 0;
  do{
    if(caras == 1){
      while(una_cara[no_caracteres] != 0xFF){
        ++no_caracteres; // cuenta el nº de carácteres del array "una_cara"
      }
      for(i=0;i<=no_caracteres;++i){ // Copiamos el array "una_cara" a "mensaje"
                                     // 1er elemento
  • --> copiamos inclusive 0xFF (marca final)

        mensaje = una_cara;
      }
    }
    if(caras == 2){
      while(dos_caras[no_caracteres] != 0xFF){
        ++no_caracteres; // cuenta el nº de carácteres del array "dos_caras"
      }
      for(i=0;i<=no_caracteres;++i){ // Copiamos el array "dos_caras" a "mensaje"
                                     // 1er elemento
  • --> copiamos inclusive 0xFF (marca final)

        mensaje = dos_caras;
      }
    }
    pulsador = rotar_mensaje(35,1,1,1,0);
    if(pulsador == 0 || pulsador == 1){
      if(caras == 1) caras = 2;
      else caras = 1;
    }
  } while(pulsador != 2 && pulsador != 3); // Al pulsar verde o rojo y devolver un 3 o 4 acepta el nº de caras
}

void listo(void){
  unsigned int no_caracteres = 0;
  while(msj_listo[no_caracteres] != 0xFF){
    ++no_caracteres; // cuenta el nº de carácteres del array "msj_listo"
  }
  for(i=0;i<=no_caracteres;++i){ // Copiamos el array "msj_listo" a "mensaje"
                                 // 1er elemento
  • --> copiamos inclusive 0xFF (marca final)

    mensaje = msj_listo;
  }
  rotar_mensaje(35,0,0,1,0);
}

void segunda_cara(void){
  unsigned int no_caracteres = 0;
  while(msj_segunda_cara[no_caracteres] != 0xFF){
    ++no_caracteres; // cuenta el nº de carácteres del array "msj_segunda_cara"
  }
  for(i=0;i<=no_caracteres;++i){ // Copiamos el array "msj_segunda_cara" a "mensaje"
                                 // 1er elemento
  • --> copiamos inclusive 0xFF (marca final)

    mensaje = msj_segunda_cara;
  }
  rotar_mensaje(35,0,0,1,0);
}

void cuenta(void){
  fin_cuenta = 0;
  min_x10 = read_eeprom(0);
  min = read_eeprom(1);
  seg_x10 = read_eeprom(2);
  seg = read_eeprom(3);
  Rele_On;
  set_rtcc(131);
  enable_interrupts(INT_RTCC);
  do{
    if(min_x10 != 0) pinta_disp1(numeros[min_x10]);
    if(min_x10 == 0 && min == 0) pinta_disp2(punto);
    else pinta_disp2(numeros[min]+punto);
    pinta_disp3(numeros[seg_x10]);
    pinta_disp4(numeros[seg]);
  } while(fin_cuenta == 0);
  disable_interrupts(INT_RTCC);
  Rele_Off;
}

void main(void){
  set_tris_a(0x00);     // Puerto A todo salidas
  port_b_pullups(TRUE); // Resistencias de polarización
  set_tris_b(0xFC);     // Todo entradas excepto RB0 (zumbador) y RB1 (Rele2)
  set_tris_c(0x00);     // Puerto C todo salidas

  port_a=0;
  port_b=0;
  port_c=0;
 
  setup_counters(RTCC_INTERNAL, RTCC_DIV_64);
  setup_timer_2(T2_DIV_BY_16, 0xFF, 16);
  enable_interrupts(GLOBAL);

  mensaje_inicio();
  Rele2_On;
  calentar_bombillas();
  selec_tiempo();
  selec_caras();
  listo();
  cuenta();
  alarma();
  if(caras == 2){
    segunda_cara();
    cuenta();
    alarma();
  }
  Rele2_Off;
  reset_cpu();
}




Desconectado stk500

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 4923
Re: Problemas para compilar en C un proyecto de RADON
« Respuesta #1 en: 22 de Agosto de 2008, 10:20:10 »
Hola Arex y Bienvenido a nuestros Foro Todopic, Te Ruego por favor que leas las Reglas del Foro y no escriba doble mensaje de los mismo , no soy experto en C
para corregirte pero posible te ayuden.
Saludo

Desconectado arex

  • PIC10
  • *
  • Mensajes: 10
Re: Problemas para compilar en C un proyecto de RADON
« Respuesta #2 en: 22 de Agosto de 2008, 11:23:25 »
Lo siento mucho pero esque cuando le he dado a publicar me ha salido un error por problemas con el servidor, y no me aparecia el post un rato mas tarde he vuelto a intentarlo y cuando me di cuenta enstaban los dos, disculpenme. slu2

Desconectado firepic

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1130
    • JC Servicios
Re: Problemas para compilar en C un proyecto de RADON
« Respuesta #3 en: 22 de Agosto de 2008, 15:06:39 »
Saludos Arex, bienvenido al foro!

Bueno debo decirte que el MPLAB no es en sí un compilador, es un entorno de programación que te permite hacer muchas cosas, entre ellas compilar. El Mplab usa por defecto un compilador para ASM, el MPASM (si mal no recuerdo), pero si tú quieres compilar en C de CCS (que por lo visto es el lenguaje bajo el cual está hecho ese programa) debes configurar el MPLAB para que use el compilador CCS, para lo cual tienes dos opciones:
1- Usar la versión demo que trael el MPLAB para CCS (no estoy seguro, pero creo que tiene bastantes limitaciones).
2- Instalarte una versión completa del CCS en tu pc y luego llamarla desde MPLAB.
De esa forma no tendrás problemas compilando código C de CCS en MPLAB. De hecho yo trabajo con la segunda opción (al igual que muchos aquí en el foro), porque me parece que es la mejor y realmente la única realmente eficaz.

En cuanto a cómo llamar al CCS desde MPLAB, hay otros hilos en los cuales ya se ha tratado ese tema, al igual que lo de cómo incluir la librería, que por supuesto, has de tenerla como un archivo en tu PC para poder llamarla, de lo contrario no tiene caso.

Espero haberte ayudado aunque sea un poco con tus dudas.
Ok nos leemos!  :mrgreen:
"Por la presunción solo se ocasiona una lucha, pero con los que consultan juntos hay sabiduría" (Proverbios 13:10).
Visita Mi Sitio Web

Desconectado firepic

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1130
    • JC Servicios
Re: Problemas para compilar en C un proyecto de RADON
« Respuesta #4 en: 22 de Agosto de 2008, 15:12:39 »
Aquí está un hilo donde expliqué cómo adicionar el CCS al MPLAB, en la página 3:
http://www.todopic.com.ar/foros/index.php?topic=22315.msg177788#msg177788

Aclaro, seguramente hay otros hilos donde se ha explicado mejor. Coloco este por la razón obvia, como lo escribí yo se me hace más fácil buscarlo. Pero usando el buscador seguro encontrarás más información.

Saludos!  :mrgreen:
"Por la presunción solo se ocasiona una lucha, pero con los que consultan juntos hay sabiduría" (Proverbios 13:10).
Visita Mi Sitio Web

Desconectado firepic

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1130
    • JC Servicios
Re: Problemas para compilar en C un proyecto de RADON
« Respuesta #5 en: 22 de Agosto de 2008, 15:17:14 »
Y aquí está otro donde el gran Vszener explica lo de las librerías en c: http://www.todopic.com.ar/foros/index.php?topic=4530.msg38870#msg38870

Nos leemos!  :mrgreen:
"Por la presunción solo se ocasiona una lucha, pero con los que consultan juntos hay sabiduría" (Proverbios 13:10).
Visita Mi Sitio Web

Desconectado arex

  • PIC10
  • *
  • Mensajes: 10
Re: Problemas para compilar en C un proyecto de RADON
« Respuesta #6 en: 24 de Agosto de 2008, 12:24:28 »
Muchas gracias ya me queda mas claro, ami lo que me enseñaron en clase fue a utilizar el MPLab 5.0 y desde ahí llamar al HT-PIC pero eso creo que esta bastante obsoleto, y va siendo hora de renovar jeje.

¿Me podeis decir que version de mplab utilizais y que version de ccs para poder descargarlos?

gracias y slu2

Desconectado MLO__

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 4581
Re: Problemas para compilar en C un proyecto de RADON
« Respuesta #7 en: 24 de Agosto de 2008, 12:45:34 »
Hola.

Yo utilizo el MPLAB IDE v7.60 y PCW V4.073, si a HT-PIC te refieres al HiTech es buen compilador tambien lo uso, solo que no tiene tantas funciones build-in.

Saludos
El papel lo aguanta todo

Desconectado arex

  • PIC10
  • *
  • Mensajes: 10
Re: Problemas para compilar en C un proyecto de RADON
« Respuesta #8 en: 24 de Agosto de 2008, 13:03:40 »
que es es pcw?, el ccs es gratuito?

Desconectado PalitroqueZ

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 5490
    • Electrónica Didacta
Re: Problemas para compilar en C un proyecto de RADON
« Respuesta #9 en: 27 de Agosto de 2008, 18:21:56 »
el pcw es el IDE del ccs, que dependiendo de la cantidad de pics, y otros aditivos, pasa a llamarse PCW/H/D.

no es gratutito.

La propiedad privada es la mayor garantía de libertad.
Friedrich August von Hayek

Desconectado arex

  • PIC10
  • *
  • Mensajes: 10
Re: Problemas para compilar en C un proyecto de RADON
« Respuesta #10 en: 02 de Septiembre de 2008, 15:33:36 »
Hola, ya me he instalado los dos programas, tanto el ccs como el pblab, y cuando creo el proyecto y todo esos siguiendo los pasos que me pusiste, le doy a compilar y me sale este error:

*** Error 24 "C:\ARCHIV~1\PICC\devices\16F876.h" Line 2(9,18): Unknown device type    -- Try PCM
      1 Errors,  0 Warnings.

Que significa? es como que no sabe k micro es ese o algo?

slu2

Desconectado MLO__

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 4581
Re: Problemas para compilar en C un proyecto de RADON
« Respuesta #11 en: 02 de Septiembre de 2008, 15:54:34 »
Hola.

Ese error es porque no estas usando el compilador para ese micro. Ve a Configure/Device y selecciona el micro que usas en la ventanita que sale. Normalmente cuando se hace un nuevo proyecto uno asigna el micro .... asi que no se porque te saldria ese error, de pronto cometiste algun descuido por ahi y asignaste un pic que no es.

Saludos
El papel lo aguanta todo

Desconectado arex

  • PIC10
  • *
  • Mensajes: 10
Re: Problemas para compilar en C un proyecto de RADON
« Respuesta #12 en: 03 de Septiembre de 2008, 03:26:54 »
Muchas gracias ya  lo encontre y fonciona! Ahora ya solo tengo warnings.

Pero me quedas mas dudas que resolver. El enlace que me pasasteis de lo de las librerias no lo entiendo muy bien, yo se que una libreria puede ser un programa que guardas con extensión ".h"

Y  luego dentro de otro programa puedo llamar a esa libreria mediante un include, pero el caso esque en el programa que os puse mas arriba no se muy bien que significa esto:

#include <TONES.C> // Zumbador
#include <internal_eeprom.c>

de echo es donde tengo los warning, es tal vez que esta yamando a otros programas que ya tiene echos en otro sitio?

Gracias por vuestra ayuda y slu2

Desconectado MLO__

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 4581
Re: Problemas para compilar en C un proyecto de RADON
« Respuesta #13 en: 03 de Septiembre de 2008, 11:06:39 »
Hola.

Porque no posteas los warning para saber mejor de que se trata? Las librerias pueden ser de extension .h o .c (estas ultimas son para trabajar con Multiples Unidades de Compilacion) asi que esos includes son para trabajar las funciones de manejo de la eeprom interna del PIC y la otra es para generar frecuencias para el zumbador, son otras librerias.

Saludos
El papel lo aguanta todo

Desconectado arex

  • PIC10
  • *
  • Mensajes: 10
Re: Problemas para compilar en C un proyecto de RADON
« Respuesta #14 en: 04 de Septiembre de 2008, 14:11:10 »
Estos son los warning que me aparecen:

Executing: "C:\Archivos de programa\PICC\Ccsc.exe" +FM "TInsoladora_tempo2.c" +DF +LN +T +A +M +Z +Y=9 +EA
>>> Warning 203 "C:\proyectos pic\insoladora\TInsoladora_tempo2.c" Line 207(1,1): Condition always TRUE
>>> Warning 203 "C:\proyectos pic\insoladora\TInsoladora_tempo2.c" Line 284(1,1): Condition always TRUE
>>> Warning 216 "C:\proyectos pic\insoladora\TInsoladora_tempo2.c" Line 521(0,1): Interrupts disabled during call to prevent re-entrancy:  (@delay_ms1)
>>> Warning 202 "C:\ARCHIV~1\PICC\drivers\TONES.C" Line 23(12,18): Variable never used:   C_NOTE
>>> Warning 202 "C:\ARCHIV~1\PICC\drivers\TONES.C" Line 24(12,19): Variable never used:   Db_NOTE
>>> Warning 202 "C:\ARCHIV~1\PICC\drivers\TONES.C" Line 25(12,18): Variable never used:   D_NOTE
>>> Warning 202 "C:\ARCHIV~1\PICC\drivers\TONES.C" Line 26(12,19): Variable never used:   Eb_NOTE
>>> Warning 202 "C:\ARCHIV~1\PICC\drivers\TONES.C" Line 27(12,18): Variable never used:   E_NOTE
>>> Warning 202 "C:\ARCHIV~1\PICC\drivers\TONES.C" Line 28(12,18): Variable never used:   F_NOTE
>>> Warning 202 "C:\ARCHIV~1\PICC\drivers\TONES.C" Line 29(12,19): Variable never used:   Gb_NOTE
>>> Warning 202 "C:\ARCHIV~1\PICC\drivers\TONES.C" Line 30(12,18): Variable never used:   G_NOTE
>>> Warning 202 "C:\ARCHIV~1\PICC\drivers\TONES.C" Line 31(12,19): Variable never used:   Ab_NOTE
>>> Warning 202 "C:\ARCHIV~1\PICC\drivers\TONES.C" Line 32(12,18): Variable never used:   A_NOTE
>>> Warning 202 "C:\ARCHIV~1\PICC\drivers\TONES.C" Line 33(12,19): Variable never used:   Bb_NOTE
>>> Warning 202 "C:\ARCHIV~1\PICC\drivers\TONES.C" Line 34(12,18): Variable never used:   B_NOTE
>>> Warning 202 "C:\proyectos pic\insoladora\TInsoladora_tempo2.c" Line 205(9,11): Variable never used:   sw
      Memory usage:   ROM=24%      RAM=16% - 30%
      0 Errors,  16 Warnings.
Loaded C:\proyectos pic\insoladora\TInsoladora_tempo2.cof.
BUILD SUCCEEDED: Thu Sep 04 19:08:02 2008

Esque todo esto de las librerias no lo entiendo muy bien, yo lo unico que quiero esque el programa me compile para generar el archivo .hex y pasarlo al micro todo esto habiendo realizados algunas modificaciones en el temporizador y en los displays.

slu2