[Programmation] Erreur de Compilation PIC18F2550 via compilateur HI TECH
Répondre à la discussion
Affichage des résultats 1 à 7 sur 7

Erreur de Compilation PIC18F2550 via compilateur HI TECH



  1. #1
    MARIO1111

    Erreur de Compilation PIC18F2550 via compilateur HI TECH


    ------

    Salut a tous,
    j'essaie de compiler un programme qui compte l’énergie électrique (kw) et l'envoie les données au fournisseur via module SIM900 .
    Je suis étudiant et nouveau dans la programmation des microcontrôleurs, j'ai besoin de votre soutien pour compiler ce code en pièce jointe.
    l'erreur que j'obtiens lors de la compilation est aussi en pièce jointe
    Merci a tous.

    fs146.jpg

    -----
    Fichiers attachés Fichiers attachés
    Dernière modification par Antoane ; 17/04/2020 à 14h10. Motif: conversion docx->png

  2. #2
    invite03481543

    Re : Erreur de Compilation PIC18F2550 via compilateur HI TECH

    Bonjour MARIO1111 et bienvenue sur le forum,

    pour commencer vous devez apprendre à commenter votre code, en principe tout code non commenté je ne le lis pas.
    Comme vous êtes débutant je vais faire un petit effort, mais conserver ce conseil pour l'avenir, c'est important si un jour vous êtes amené à travailler avec d'autres gens.
    Et même pour vous, ça vous évitera de perdre du temps.

    Autre point:
    Code:
    #include <p18cxxx.h>
    #include "S@config.h" 
    #include "types.h"
    #include "EEP.h"
    #include "LCD.h"
    #include "Modem.h"
    #include "Port.h"
    #include <PIC18F2550.h>
    Il va falloir choisir...

  3. #3
    invite03481543

    Re : Erreur de Compilation PIC18F2550 via compilateur HI TECH

    Il est également plus propre d'écrire avec des typedef, par exemple:
    Code:
    typedef unsigned char uint8_t;

  4. #4
    MARIO1111

    Re : Erreur de Compilation PIC18F2550 via compilateur HI TECH

    Merci HULK28 pour votre réponse et de vos remarques j'en tiendrai compte la prochaine fois. la bataille avec les includes c'est un truc de ouff

  5. A voir en vidéo sur Futura
  6. #5
    MARIO1111

    Re : Erreur de Compilation PIC18F2550 via compilateur HI TECH

    toujours la même galère dans la compilation. please help


    Build C:\Users\MARIUS\Downloads\avr\ meter\meter for device 18F2550
    Using driver C:\Program Files\HI-TECH Software\PICC-18\9.80\bin\picc18.exe

    Make: The target "C:\Users\MARIUS\Downloads\avr \meter\meter.p1" is out of date.
    Executing: "C:\Program Files\HI-TECH Software\PICC-18\9.80\bin\picc18.exe" --pass1 C:\Users\MARIUS\Downloads\avr\ meter\meter.c -q --chip=18F2550 -P --runtime=default --opt=default -D__DEBUG=1 -g --asmlist "--errformat=Error [%n] %f; %l.%c %s" "--msgformat=Advisory[%n] %s" "--warnformat=Warning [%n] %f; %l.%c %s"
    Warning [361] C:\Program Files\HI-TECH Software\PICC-18\9.80\include\18F2550METER.h ; 51.1 function declared implicit int
    Warning [361] C:\Program Files\HI-TECH Software\PICC-18\9.80\include\18F2550METER.h ; 81.18 function declared implicit int
    Error [285] C:\Users\MARIUS\Downloads\avr\ meter\meter.c; 50.2 no identifier in declaration
    Warning [374] C:\Users\MARIUS\Downloads\avr\ meter\meter.c; 50.2 missing basic type; int assumed
    Error [285] C:\Users\MARIUS\Downloads\avr\ meter\meter.c; 50.4 no identifier in declaration
    Error [285] C:\Users\MARIUS\Downloads\avr\ meter\meter.c; 50.6 no identifier in declaration
    Error [285] C:\Users\MARIUS\Downloads\avr\ meter\meter.c; 53.14 no identifier in declaration
    Error [285] C:\Users\MARIUS\Downloads\avr\ meter\meter.c; 54.13 no identifier in declaration
    Error [285] C:\Users\MARIUS\Downloads\avr\ meter\meter.c; 55.13 no identifier in declaration
    Error [285] C:\Users\MARIUS\Downloads\avr\ meter\meter.c; 56.6 no identifier in declaration
    Warning [374] C:\Users\MARIUS\Downloads\avr\ meter\meter.c; 56.6 missing basic type; int assumed
    Error [285] C:\Users\MARIUS\Downloads\avr\ meter\meter.c; 57.6 no identifier in declaration
    Warning [374] C:\Users\MARIUS\Downloads\avr\ meter\meter.c; 57.6 missing basic type; int assumed
    Error [285] C:\Users\MARIUS\Downloads\avr\ meter\meter.c; 60.2 no identifier in declaration
    Warning [374] C:\Users\MARIUS\Downloads\avr\ meter\meter.c; 60.2 missing basic type; int assumed
    Error [285] C:\Users\MARIUS\Downloads\avr\ meter\meter.c; 60.4 no identifier in declaration
    Error [285] C:\Users\MARIUS\Downloads\avr\ meter\meter.c; 61.13 no identifier in declaration
    Error [314] C:\Users\MARIUS\Downloads\avr\ meter\meter.c; 61.13 ";" expected
    Warning [361] C:\Users\MARIUS\Downloads\avr\ meter\meter.c; 64.1 function declared implicit int
    Error [195] C:\Users\MARIUS\Downloads\avr\ meter\meter.c; 64.10 expression syntax
    Error [194] C:\Users\MARIUS\Downloads\avr\ meter\meter.c; 64.14 ")" expected
    Error [195] C:\Users\MARIUS\Downloads\avr\ meter\meter.c; 64.14 expression syntax
    Error [195] C:\Users\MARIUS\Downloads\avr\ meter\meter.c; 69.24 expression syntax
    Error [195] C:\Users\MARIUS\Downloads\avr\ meter\meter.c; 70.1 expression syntax
    Warning [361] C:\Users\MARIUS\Downloads\avr\ meter\meter.c; 71.1 function declared implicit int
    Error [195] C:\Users\MARIUS\Downloads\avr\ meter\meter.c; 72.1 expression syntax
    Warning [361] C:\Users\MARIUS\Downloads\avr\ meter\meter.c; 82.1 function declared implicit int
    Warning [361] C:\Users\MARIUS\Downloads\avr\ meter\meter.c; 83.1 function declared implicit int
    Error [195] C:\Users\MARIUS\Downloads\avr\ meter\meter.c; 83.10 expression syntax
    Error [194] C:\Users\MARIUS\Downloads\avr\ meter\meter.c; 83.20 ")" expected
    Error [195] C:\Users\MARIUS\Downloads\avr\ meter\meter.c; 83.20 expression syntax
    Advisory[1] too many errors (21)

    ********** Build failed! **********

  7. #6
    invite03481543

    Re : Erreur de Compilation PIC18F2550 via compilateur HI TECH

    Il faut poster les fichiers header (.h) pour voir comment ils sont écrits.
    Ce code, très honnêtement est une horreur à lire, des déclarations de variables globales en plein milieu du code, des fonctions non déclarées telles que par exemple:

    Code:
    SystemBeginInit();
    Des variables de type int là où il faudrait des unsigned int, des casting à la volée, ça manque vraiment d'organisation.
    Reposte le code correspondant à ces messages d'erreur et les fichiers header associés, sinon pas possible de t'aider.

  8. #7
    invite03481543

    Re : Erreur de Compilation PIC18F2550 via compilateur HI TECH

    Il faudrait restructurer ton code en faisant quelque chose dans ce style:

    Code:
    */ directives de préprocesseur*/
    
    #include <htc.h>  // si tu utilises hitech C il ne faut surtout pas le mettre en commentaire!
    #include "S@config.h"
    #include "types.h"
    #include "EEP.h"
    #include "LCD.h"
    #include "Modem.h"
    #include "Port.h"
    #include <PIC18F2550.h>
    #include "Queue.h"
    #include "Time.h"
    #include "AC.h"
    #include "System.h"
    
    */ définition des variables globales (elles doivent être toutes ici)/* 
    
    LCD lcd;  // d'où sort ce type LCD... où est-il défini ???
    uint8_t ModemRxBuf[100];
    QUEUE ModemRxQueue; //idem
    PORTb mdPort;
    MODEM modem; //idem
    TIME ConnTime, SMSTime, buzzTime; //idem
    TIME SenseTime; //idem
    uint8_t dSTime;
    uint8_t txt[150];
    uint8_t txtMatch[10];
    uint8_t contact[17];
    sBinType, VBin[40]; //idem
    sBinType, IBin[40]; //idem
    float V, I, W, J, M, IOffset;
    bool connected;
    bool memSet, smsSet;
    uint8_t newLine[3] = "\r\n\0";
    
    /* prototype des fonctions */  A mettre en amont de la fonction main()
    
    void putch(uint8_t c);
    void Acquire(void);
    .... etc
    
    /* entrée du programme */ ici tu mets le main() pour le retrouver facilement
    
    void main(void)
    { // la parenthèse au bord gauche pour que l'éditeur puisse te montrer où elle se referme plus bas
    // tu laisses un espace ici que ce soit lisible
     SystemBeginInit();
     BUSInit();
    .............
             if (jValid != 0) // ici tu décales vers la droite ce if pour plus de visibilité
               {
                 J = 0;
                 M = 0;
               }
    ......
    
    } // parenthèse fermante de la fonction main()
    
    Puis tu places à suivre les différentes fonctions avec un descriptif en entête
    
    /**********************************************************************/
    /*  Mesure de x (dire quel type de grandeur mesurée, ADC n° x (10 bits ou autres info)*/ 
    /**********************************************************************/ 
    
    void Acquire(void)
    {
      uint8_t i; // variable déclarée et tu laisses un espace avec la suite
    
    
     for (i = 0; i < sizeof(VBin)/sizeof(sBinType); i++)
          {
          VBin[i] = (int16_t)SystemReadADC(1) - 511;
          SystemDelayUs(1000/2);
          IBin[i] = (int16_t)SystemReadADC(0) - 511;
          SystemDelayUs(1000/2);
          }
    }
    
    ....
    Autre remarque, ton main est bien trop long, ce n'est pas dans le main que l'on fait des calculs, il faut appeler des fonctions pour cela.
    Le main doit être le plus court possible, il doit montrer le déroulement d'un programme structuré et organisé où il sera facile d'ajouter une nouvelle tache.
    Là c'est juste la chambre de mon fils.

Discussions similaires

  1. [Programmation] Compilation d'un projet sous GCC (Compilateur GNU 4.9.3)
    Par Melhuntchon dans le forum Électronique
    Réponses: 3
    Dernier message: 28/03/2017, 08h10
  2. Interruption INT0/RB0 sur pic18f2550 compilateur C18 marche pas
    Par frankie dans le forum Électronique
    Réponses: 11
    Dernier message: 19/10/2011, 23h48
  3. Erreur sur le compilateur hi-tech
    Par LABTOOL48 dans le forum Électronique
    Réponses: 3
    Dernier message: 21/05/2010, 03h39
  4. pic et compilateur hi-tech
    Par mmarc2007 dans le forum Électronique
    Réponses: 2
    Dernier message: 19/07/2009, 16h33
  5. [HI-TECH PICC18]-Erreur lors de la compilation
    Par jorg1n dans le forum Électronique
    Réponses: 0
    Dernier message: 20/05/2008, 14h48
Découvrez nos comparatifs produits sur l'informatique et les technologies.