Autor Tema: error al compilar Mplab Xide C16 y dspic 30f2010  (Leído 586 veces)

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

Desconectado pic_877a

  • PIC16
  • ***
  • Mensajes: 114
error al compilar Mplab Xide C16 y dspic 30f2010
« en: 28 de Febrero de 2020, 11:46:14 »


amigos del  foro cordial saludo

bueno les comento he diseñado un codigo que es un ohmetro digital en mplab xide con c16 pero al compilar me genera muchos errores.

este es el codigo

/*
 * File:   Ohmetro.c
 * Author: JOSE
 *
 * Created on 27 de febrero de 2020, 05:44 PM
 */


// DSPIC30F2010 Configuration Bit Settings

// 'C' source line config statements

// FOSC
#pragma config FPR = HS                 // Primary Oscillator Mode (HS)
#pragma config FOS = FRC                // Oscillator Source (Internal Fast RC)
#pragma config FCKSMEN = CSW_FSCM_OFF   // Clock Switching and Monitor (Sw Disabled, Mon Disabled)

// FWDT
#pragma config FWPSB = WDTPSB_16        // WDT Prescaler B (1:16)
#pragma config FWPSA = WDTPSA_512       // WDT Prescaler A (1:512)
#pragma config WDT = WDT_OFF            // Watchdog Timer (Disabled)

// FBORPOR
#pragma config FPWRT = PWRT_64          // POR Timer Value (64ms)
#pragma config BODENV = NONE            // Brown Out Voltage (Reserved)
#pragma config BOREN = PBOR_ON          // PBOR Enable (Enabled)
#pragma config LPOL = PWMxL_ACT_HI      // Low-side PWM Output Polarity (Active High)
#pragma config HPOL = PWMxH_ACT_HI      // High-side PWM Output Polarity (Active High)
#pragma config PWMPIN = RST_IOPIN       // PWM Output Pin Reset (Control with PORT/TRIS regs)
#pragma config MCLRE = MCLR_EN          // Master Clear Enable (Enabled)

// FGS
#pragma config GWRP = GWRP_OFF          // General Code Segment Write Protect (Disabled)
#pragma config GCP = CODE_PROT_ON       // General Segment Code Protection (Enabled)

// FICD
#pragma config ICS = PGD                // Comm Channel Select (Use PGC/EMUC and PGD/EMUD)

// #pragma config statements should precede project file includes.
// Use project enums instead of #define for ON and OFF.

#include <xc.h>




int main(void)
{
   
  Initilize_LCD();
  ConfigModuleADC();
  ChangeChannelADC(0);
 
  while(1)
  {
      DisplayResistance();
      __delay__ ms(100);
  }
  return 0;
}

  }
  void DisplayResistance(void)
  {
      const char Voltage [] = "Ohmetro Digital";
      unsigned char Unit = 0;
      const float R3 = 1000, Vcc = 5.0;
      unsigned int ADC_Value = 0;
      float VoltageOutput = 0;
      unsigned long ResistanceMeasured = 0;
     
      ClearScreen_LCD();
      WriteString_LCD(Voltage);
      MoveCursorToPosition(Secondline);
      ADC_Value = SamplingAndConversionADC();
     
      VoltageOuput = ((float) (ADC_Value)) * 0.004828;
     
      ResistanceMeasured = (unsigned long)((VoltageOutput * R3) / (Vcc-VoltageOutput));
     
      unit = WriteLongAsFloatUptoFiveFigures(ResistanceMeasured);
     
      if (Unit ==2)
          WriteString_LCD("MOhm");
      else if (Unit ==1)
          WriteString_LCD("KOhm");
      else if (!Unit)
          WriteString_LCD("Ohm");
      else
          WriteString_LCD("Fuera del Rango ");
     
  }

espero y me puedan ayudar amigos

 :?

gracias

jose

Desconectado planeta9999

  • Moderadores
  • DsPIC30
  • *****
  • Mensajes: 3520
    • Pinballsp
Re:error al compilar Mplab Xide C16 y dspic 30f2010
« Respuesta #1 en: 28 de Febrero de 2020, 13:10:34 »

Eso no son errores, son avisos (warnings). Esos que se ven en tu captura de pantalla, en concreto, son por no haber creado el prototipo de cada función antes de llamarlas, por eso el compilador te avisa que asume que la llamada lleva implícita la declaración de la función.

Si quieres que desaparezcan esos warnings, simplemente crea el prototipo de las funciones al inicio del fuente, o mueve el fuente de las funciones antes del main(), yo suelo optar por lo segundo.

Desconectado pic_877a

  • PIC16
  • ***
  • Mensajes: 114
Re:error al compilar Mplab Xide C16 y dspic 30f2010
« Respuesta #2 en: 28 de Febrero de 2020, 13:32:46 »


amigo gracias por responder, es posible y me ayudes a organizar el código para que no me genere errores?  :?:

jose

Desconectado planeta9999

  • Moderadores
  • DsPIC30
  • *****
  • Mensajes: 3520
    • Pinballsp
Re:error al compilar Mplab Xide C16 y dspic 30f2010
« Respuesta #3 en: 28 de Febrero de 2020, 14:14:03 »

Haz lo que te he dicho.
O pones el prototipo de las funciones al principio del fuente, o mueves las funciones antes del main(), en teoría con que estén declaradas antes de ser llamadas es suficiente.

Desconectado KILLERJC

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 7679
Re:error al compilar Mplab Xide C16 y dspic 30f2010
« Respuesta #4 en: 28 de Febrero de 2020, 14:52:26 »
Deberias copiar bien la salida del compilador, ya que deberia existir algun error debido a que no hay ninguna referencia a esas funciones, ni siquiera un include a la mismas.

Asi que, o estas intentando usar funciones que crees que existen y no lo estan, o estas teniendo un problema y no estas agregando los archivos correspondientes.

Desconectado pic_877a

  • PIC16
  • ***
  • Mensajes: 114
Re:error al compilar Mplab Xide C16 y dspic 30f2010
« Respuesta #5 en: 28 de Febrero de 2020, 14:55:02 »
 
por fa me das un ejemplo si :?:

Desconectado pic_877a

  • PIC16
  • ***
  • Mensajes: 114
Re:error al compilar Mplab Xide C16 y dspic 30f2010
« Respuesta #6 en: 04 de Marzo de 2020, 12:51:15 »


hola amigo el planeta9999 sabes he realizado unos cambios al codigo, pero esta me esta generando un error de directorio Lcd.h
cambie el pic y estoy utlizando el pic 24f16ka102.

este es el codigo.

 *
 * File:   Ohmetro.c
 * Author: JOSE
 *
 * Created on 4 de marzo de 2020, 06:39 AM
 */


#define CRYSTAL_FRQUENCY   20000000             /*  20MHz crystal   */
#define FCY CRYSTAL_FRQUENCY/2UL                /*  Cycle frequency */

#include <p24F16KA102.h>
#include <libpic30.h>
#include "LCD.h"
#include "ADC.h"

_FGS(GWRP_OFF & GCP_OFF)
_FOSCSEL(FNOSC_PRI & IESO_OFF)
_FOSC(POSCMOD_HS & OSCIOFNC_ON & POSCFREQ_HS & FCKSM_CSDCMD)
_FWDT(WINDIS_OFF & FWDTEN_OFF)
_FPOR(BOREN_BOR2 & PWRTEN_OFF  & MCLRE_ON)
_FDS(DSBOREN_OFF & DSWDTEN_OFF)
       
int main(void)
{   
    Initilize_LCD();
   
    ConfigModuleADC();          /*  Configure ADC module    */
    ChangeChannelADC(0);        /*  AN0 channel             */
     
    while(1)
    {
        DisplayResistance();
        __delay_ms(100);                        /*  200m Second delay  */
    }
    return 0;
}

void DisplayResistance(void)
{
   
    const char Voltage[] = "Ohmetro Digital";
    unsigned char Unit = 0;
    const float R3 = 10000, Vcc = 5.0;               /*  vo = (10k/(90k + 10k)) vcc    */
    unsigned int ADC_Value = 0;
    float VoltageOutput = 0.0;
    unsigned long ResistanceMeasured = 0;           /*  32 bit wide data type          */



    ClearScreen_LCD();
    WriteString_LCD(Voltage);
    MoveCursorToPosition(SecondLine);
    ADC_Value = SamplingAndConversionADC();                 /*  Sampling                */

    VoltageOutput = ((float)(ADC_Value))* 0.0048828;        /* 0.0048828 = 5/1024       */
   

    ResistanceMeasured = (unsigned long)((VoltageOutput * R3)/(Vcc - VoltageOutput));
   
    //ResistanceMeasured *= 1000;                             /*  miliOhms conversion    */

    Unit = WriteLongAsFloatUptoFiveFigures(ResistanceMeasured);    /*  Printing integer value on LCD   */

    if (Unit ==2)
        WriteString_LCD(" MOhm");
    else if (Unit == 1)
        WriteString_LCD(" kOhm");
    else if (!Unit)
        WriteString_LCD(" Ohm");
    else
        WriteString_LCD("Fuera del Rango");

}
 puedes ayudarme con este error y gracias

jose

Desconectado KILLERJC

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 7679
Re:error al compilar Mplab Xide C16 y dspic 30f2010
« Respuesta #7 en: 04 de Marzo de 2020, 15:31:00 »
tu problema es que busca la libreria (Lcd.c y Lcd.h) y no existen.

Primero: Necesitas las librerias
Segundo: Tienen que estar en la carpeta de tu proyecto.
Tercero: Lo tenes que agregar al proyecto en el MPLAB a los .c y los .h

Los nombres de las funciones dependen de las librerias. Por lo tanto no hay ejemplos que te podamos dar.. Si no hay librerias y es ahi donde vos tenes el error.

Demas que es un error de programacion en C y nada tiene que ver con el micro, deberias revisar algun tutorial o hacer algun codigo mas sencillo para aprender como es que funcionan los .h y los .c

Desconectado pic_877a

  • PIC16
  • ***
  • Mensajes: 114
Re:error al compilar Mplab Xide C16 y dspic 30f2010
« Respuesta #8 en: 18 de Marzo de 2020, 09:42:28 »


bueno amigo, no me dado por vencido, sigo trabajando en el código, lo he mejorado pero al compilar me genera este error, adjunto la imagen  pueden ayudarme gracias  :(


Desconectado pic_877a

  • PIC16
  • ***
  • Mensajes: 114
Re:error al compilar Mplab Xide C16 y dspic 30f2010
« Respuesta #9 en: 18 de Marzo de 2020, 10:04:30 »


he vuelto a compilar el codigo, y ahora me genera otro error, adjunto la imagen, para ver como lo puedo solucionar amigos  :(

Desconectado KILLERJC

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 7679
Re:error al compilar Mplab Xide C16 y dspic 30f2010
« Respuesta #10 en: 18 de Marzo de 2020, 11:06:00 »
El error es el mismo, el problema es que esta en el linker, y por lo que veo ya es un error del compilador y no vamos a poder hacer mucho.

Podrias probar lo siguiente:
- Crear un nuevo proyecto copiando el codigo y ver si se repite
- Probar otra version del compilador

Ya que la seccion __FOSCEL esta definida en el .gld del linker, pero la seccion .config IESO esta "hard-coded" en el make por lo que lei en otro mensaje con un problema parecido.

Desconectado pic_877a

  • PIC16
  • ***
  • Mensajes: 114
Re:error al compilar Mplab Xide C16 y dspic 30f2010
« Respuesta #11 en: 18 de Marzo de 2020, 13:13:57 »


he cambiando el Mplab x ide versión 5.20 y estoy usando compilador Xc16 versión 1.31 bueno este compilador es para pic 16 bits, y estoy usando pic 24f16ka102

y me sigue generando los mismos errores, adjunto las imágenes  :(

 

Desconectado KILLERJC

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 7679
Re:error al compilar Mplab Xide C16 y dspic 30f2010
« Respuesta #12 en: 18 de Marzo de 2020, 14:37:02 »
Vas a tener que pasar un rar o zip con el proyecto minimo para mostrar por LCD algo... Asi con fotos nos es imposible revisarlo.

Comprimi la carpeta del proyecto y subilo.
« Última modificación: 18 de Marzo de 2020, 14:42:39 por KILLERJC »

Desconectado pic_877a

  • PIC16
  • ***
  • Mensajes: 114
Re:error al compilar Mplab Xide C16 y dspic 30f2010
« Respuesta #13 en: 18 de Marzo de 2020, 14:57:25 »


amigo KILLERJC acá  tienes el código en block de notas, puedes revisarlo para poder encontrar el error, que no me dejando compilar el codigo con pic 24f16ka102, y gracias por la ayuda de nuevo :(

Desconectado KILLERJC

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 7679
Re:error al compilar Mplab Xide C16 y dspic 30f2010
« Respuesta #14 en: 18 de Marzo de 2020, 17:11:01 »
No me sirve el codigo, me sirve el proyecto, porque hasta ahora seguis teniendo los errores de las funciones del LCD, por eso mismo quiero la carpeta del proyecto comprimida, para ver si estan los archivos necesarios. Y tambien para poder compilarlo completo en mi PC de esa forma si me funciona significa que el problema esta en tu compilador.


 

anything