programmation qui plante
Répondre à la discussion
Affichage des résultats 1 à 11 sur 11

programmation qui plante



  1. #1
    invite572b1dde

    programmation qui plante


    ------

    Bonjour tout le monde,

    je vous explique ma situation. J'arrive en fin d'étude d'un BTS.
    Et j'ai donc un projet d'étude a mener à bien, ce projet est bientôt fini.
    Il consiste à mesurer une une température créer une boucle de courant 4mA-20mA et convertir cette boucle en 0V-5V.
    Ensuite je converti cette tension ana en numerique avec un pic puis
    selon un seuil que j'ai défini déclenché une ventilation une boucle d'alarme et je doit afficher tout ça.
    Le projet fonction mais parfois le programme plante puis repart puis replante ect...
    J'ai vérifier les masses, les alim ainsi que toutes mes connections,
    le quartz également les condo enfin tout, à chaque fois j'ai les signaux qu'il me faut a l'oscilo, sauf quand ça plante.
    Je n'ai plus aucune idée.
    Je reçois velontier tout les conseilles et idée qu'il vous traverserai l'esprit.
    Merci d'avance

    -----

  2. #2
    invite89303051

    Re : programmation qui plante

    Bonjour,

    Il y a tellement de raison pour qu'un programme plante qu'on ne peut pas les enumérer.
    Une bonne revue de code s'impose à mon avis, mais sans connaitre le language utilisé, le controleur employé et autres informations, il sera impossible de te renseigner.

    Cordialement

  3. #3
    Jack
    Modérateur

    Re : programmation qui plante

    certains µcontrôleurs possèdent un registre mémorisant la dernière caue de reset. Ca peut être intéressant pour remonter à l'erreur.

    Sinon, tous les circuits numériques sont bien découplés par des capas de 100nF soudées au plus près des broches d'alim du circuit?

    A+

  4. #4
    invite572b1dde

    Re : programmation qui plante

    Il est vrai que j'ai oublié quelques détailles.
    Mon support est un 16F876A, plutôt fiable comme réputation.
    Et je programme en C.

    Pour les capacités de couplage pas de souci, j'ai dans les règles,
    au plus prés en revanche j'ai mis 1µF. Mais je doute que sa vienne de
    l'alim. J'ai fait plusieurs test dans ce sens.

    Je vais mettre mon bout de code: ( je code avec mikroC)
    Et j'ai pris quelques librairies qui étaient dans le programme,
    surtout pour l'affichage (LCD 20X2 caractères)

    Merci beaucoup à celui qui ce sent le courage de regarder.
    Cela dit j'ai fait la simu sous proteus et je n'ai aucun soucis.

    Voici le programme:

    #define RS PORTB.f4 //Attribution du signal RS sur la bonne broche du µC (cf schéma)
    #define E PORTB.f6 //Attribution du signal E sur la bonne broche du µC (cf schéma)
    #define RW PORTB.f5 //Attribution du signal RW sur la bonne broche du µC (cf schéma)
    #define RELAIS_B PORTB.f3 //attribution de port
    #define RELAIS_A PORTB.f7 //attribution de port

    char i;
    char Temp ;
    char txt[4];

    void Lcd8_Init(); //fonction permettant d'initialiser le LCD
    void mesure(); //fonction acquisition par convertisseur
    void valider(); //fonction permettant de valider une commande ou un caractère
    void temp_basse(); //fonction permettant l'activation des ventilateurs
    void temp_haute(); //fonction permettant l'activation de la boucle d'alarme
    void Lcd8_Out(); //fonction permattant l'affichage sur le LCD
    void ByteToStr(); //fonction permattant la conversion d'un octet

    unsigned long ResConv; // variable locale sur 16 bits

    void main()
    {
    trisa = 0b11111111; //définition des entrées/sorties trisa
    trisb = 0b00000000; //définition des entrées/sorties trisb
    trisc = 0b00000000; //définition des entrées/sorties trisc
    adcon0 = 0b10000001;
    adcon1 = 0b10000000;
    portb = 0;
    while (1)
    {
    mesure();
    delay_ms(100);
    ByteToStr(i, txt);
    Lcd8_Init(&PORTB, &PORTC);
    temp_basse(); //envoie d'un 1 ou d'un 0
    temp_haute(); //envoie d'un 1 ou d'un 0
    }
    }

    void mesure()
    {
    adcon0.GO_DONE = 1; // debut de la conversion
    delay_us(500); // Attente "forfaitaire"
    ResConv = adresh * 256 + adresl; // Lecture du résultat ResConv 16Bits
    i= ResConv / 10.24; //division du resultat pour l'affichage
    temp = i ;
    }
    void temp_basse()
    {
    if (ResConv < 307) // si la tension est inférieure à 2.5V
    {
    RELAIS_A = 0;
    RELAIS_B = 0;
    {
    Lcd8_Out(1, 1, "ventil off");
    }
    {
    Lcd8_Out(2, 16, txt);
    }
    {
    Lcd8_Out(2, 20, "C");
    }
    {
    Lcd8_Out(2, 1, "seuil 50 C");
    }
    }
    }
    void temp_haute()
    {
    if (ResConv > 307) // si la tension est supèrieur à 2.5V
    {
    RELAIS_A = 1;
    RELAIS_B = 1;
    {
    Lcd8_Out(1, 1, "ventil on");
    }
    {
    Lcd8_Out(2, 16, txt);
    }
    {
    Lcd8_Out(2, 20, "C");
    }
    {
    Lcd8_Out(2, 1, "seuil 50 C");
    }
    }
    }

  5. A voir en vidéo sur Futura
  6. #5
    Jack
    Modérateur

    Re : programmation qui plante

    Il est vrai que j'ai oublié quelques détailles.
    Mon support est un 16F876A, plutôt fiable comme réputation.
    Faut voir ...

    Pour les capacités de couplage pas de souci, j'ai dans les règles,
    au plus prés en revanche j'ai mis 1µF. Mais je doute que sa vienne de
    l'alim. J'ai fait plusieurs test dans ce sens.
    Quels tests? Les problèmes peuvent être assez fugitif, lors du basculement d'une sortie par exemple. De plus 1µF me semble un peu trop. J'espère qu'il ne s'agit pas de condos chimiques.

    A+

  7. #6
    remy01

    Re : programmation qui plante

    Bonjour,
    tu ne donnes pas la configuration des "fuses", le "chien de garde" est bien
    non autorisé ?
    Autrement, l' alimentation est-elle bien dimensionnée pour le circuit ?
    ( il y a souvent un disjoncteur thermique dans les régulateurs)... ??
    A+ ....Rémy.

  8. #7
    invitef86a6203

    Re : programmation qui plante

    pas d'erreur visible dans le soft.
    Alors voir du coté du découplage , surtout avec des relais !!!

  9. #8
    RISC

    Re : programmation qui plante

    Salut,

    1/ Peux-tu faire voir ton schéma ?
    2/ La valeur des bits de configuration ? (pourquoi ne sont-ils pas dans ton fichier source ?)
    3/ As-tu laissé des broches en l'air ?
    4/ quel oscillateur utilises-tu ?
    5/ Comment est faite ton alimentation ?
    6/ Comment est-fait ton circuit de RESET ?

    Quand on aura vu cela on aura écarté 99,9% des PB hardware ;=)

    a+

  10. #9
    invite572b1dde

    Re : programmation qui plante

    bonjour tout le monde,

    merci pour votre temps passé à m'aider.
    J'ai trouvé le probleme hier aprés midi.
    Je pensais que c'était un problème logiciel du fait que le système plantait aléatoirement dans le temps.
    Mais pas du tout en réalité la pin 1 du pic (MCLR\) que j'avais mis au +5V en direct et en faite il lui fallait une relation RC pour que sa tourne bien.

    Merci a vous.
    A une prochaine pour un nouveau probleme

  11. #10
    invitebd358db9

    Re : programmation qui plante

    tu peux aussi definir la pinne mclr comme une entrée et non comme reset dans les fuse du pic. comme ca pas besoin de brochage speciale.

  12. #11
    invite572b1dde

    Wink Re : programmation qui plante

    ok merci

    je note pour la prochaine fois.

Discussions similaires

  1. logiciel qui plante
    Par invite23113d80 dans le forum Logiciel - Software - Open Source
    Réponses: 11
    Dernier message: 01/02/2009, 15h28
  2. Explorateur qui plante
    Par invite21691483 dans le forum Logiciel - Software - Open Source
    Réponses: 4
    Dernier message: 09/08/2006, 10h46
  3. mac qui plante
    Par invitee33560cf dans le forum Internet - Réseau - Sécurité générale
    Réponses: 1
    Dernier message: 01/06/2006, 12h23
  4. problème de pc qui plante...
    Par invitee6dbc8ad dans le forum Matériel - Hardware
    Réponses: 4
    Dernier message: 12/04/2005, 17h36
  5. pc qui plante
    Par invitec5e1ab9c dans le forum Logiciel - Software - Open Source
    Réponses: 7
    Dernier message: 05/03/2004, 23h21
Dans la rubrique Tech de Futura, découvrez nos comparatifs produits sur l'informatique et les technologies : imprimantes laser couleur, casques audio, chaises gamer...