probleme codage d'un microcontrolleur
Répondre à la discussion
Affichage des résultats 1 à 15 sur 15

probleme codage d'un microcontrolleur



  1. #1
    Albert-cosmoff

    probleme codage d'un microcontrolleur


    ------

    bonjour à tous,

    voila j'ai fabriqué en C sur MPLABX un timer de frequence 100 HZ et il doit faire clignoter une led toutes les 0.5sec , voici le code :
    Code:
    if(Flag_HORLOGE)// f = 100HZ
          {
            Flag_HORLOGE=0;
            //i=50=0.5sec
            if(i<50)
            {
                RB4=1;      //LED allumé      
            }
            else if(i>=100)i=0;
            else 
            {
                RB4=0;      //LED eteinte
            }
            i++;
          }
    ce code fonctionne tres bien, mon probleme et quand je veux que ma led clignotte par exemple toutes les 5 sec , il suffit donc de changer la variable :
    Code:
    if(i<500)
    et
    Code:
    else if(i>=1000)i=0;
    probleme et quand je change la variable, ma led reste allumé ce qui est totalement illogique :/ je sais pas pourquoi


    merci de votre aide

    -----

  2. #2
    DAUDET78

    Re : probleme codage d'un microcontrolleur

    Petite question d'un NOB en µC ....
    Ta variable "i" est déclaré comment ?
    J'aime pas le Grec

  3. #3
    Albert-cosmoff

    Re : probleme codage d'un microcontrolleur

    Code:
    int i = 0 ;

  4. #4
    DAUDET78

    Re : probleme codage d'un microcontrolleur

    Et un int, c'est 8 bits ou 16 bits ?
    J'aime pas le Grec

  5. A voir en vidéo sur Futura
  6. #5
    Albert-cosmoff

    Re : probleme codage d'un microcontrolleur

    c'est 16 bits, je te sens sur une piste

  7. #6
    extremgear

    Re : probleme codage d'un microcontrolleur

    je pensais à une variable mal déclarée mais apparement c'est bon , tu utilises quel compilo ?

  8. #7
    DAUDET78

    Re : probleme codage d'un microcontrolleur

    Au pif ... je dirais 8 bits vu les symptômes . Tu as essayé
    Code:
    else if(i>=255) i=0;
    et
    Code:
    else if(i>=257) i=0;
    J'aime pas le Grec

  9. #8
    Albert-cosmoff

    Re : probleme codage d'un microcontrolleur

    mon compilateur est : XC8 (v1.30) [C:\Program Files (x86)\Microchip\xc8\v1.30\bin]

    @DAUDET78 : j'ai utilisé tes deux valeurs et ca marche mais maintenant meme si je met :
    Code:
    else if(i>=1000)
    ca clignote, ca bug a mort ! mais quand je fait clignoter toutes les 0.5 sec et meme plus bas tout roule

    DAUDET78 tu penses que c'est le fait que je depasse les 8 bits a ma variable ' i ' qui pose probleme?

  10. #9
    DAUDET78

    Re : probleme codage d'un microcontrolleur

    Citation Envoyé par Albert-cosmoff Voir le message
    que je depasse les 8 bits a ma variable ' i ' qui pose probleme?
    Certainement .... mais, comme tu le vois, je suis nul en programmation
    J'aime pas le Grec

  11. #10
    extremgear

    Re : probleme codage d'un microcontrolleur

    vérifie dans le manuel XC8 mais il me semble qu'une variable déclarée en int est codée sur 16bits.

  12. #11
    RISC

    Re : probleme codage d'un microcontrolleur

    Salut,

    Essaye unsigned int i...

    Issu du manuel du compilateur XC8 v1.33 page 147 :
    "If no signedness is specified in the type, then the type will be signed except for the char types which are always unsigned."

    a+

  13. #12
    Albert-cosmoff

    Re : probleme codage d'un microcontrolleur

    j'ai essayé avec unsigned int i mais ca ne marche tjs pas

  14. #13
    DAUDET78

    Re : probleme codage d'un microcontrolleur

    Citation Envoyé par Albert-cosmoff Voir le message
    j'ai essayé avec unsigned int i mais ca ne marche tjs pas
    L'avantage de programmer en assembleur ... c'est qu'on ne se casse pas la tête avec ce genre de problème qui dépend du bon vouloir d'un compilateur pas coopératif !
    En assembleur, un registre c'est 8 bits? OK . Je veux 16 bits? j'en utilise deux . point barre .
    J'aime pas le Grec

  15. #14
    extremgear

    Re : probleme codage d'un microcontrolleur

    peu coopératif ou .... bridé !
    il y a forcément un truc qui cloche , montre tout ton programme avec les initialisations etc ....


    edit : si tu utilises un pic18 utilise LATB4=X plutot que RB4=X;
    Dernière modification par extremgear ; 21/11/2014 à 22h17.

  16. #15
    DAUDET78

    Re : probleme codage d'un microcontrolleur

    Citation Envoyé par extremgear Voir le message
    peu coopératif ou .... bridé !
    Si on pouvait avoir le code assembleur généré de l'instruction
    Code:
    i++;
    on verrait de suite si la variable "i" est en 8 ou 16 bits
    J'aime pas le Grec

Discussions similaires

  1. Problème codage Manchester
    Par Hamza0fac dans le forum Électronique
    Réponses: 0
    Dernier message: 07/01/2014, 16h27
  2. Problème avec l'interruption externe du microcontrolleur.
    Par rami74 dans le forum Électronique
    Réponses: 4
    Dernier message: 19/04/2013, 08h22
  3. TPE sur le pixels, codage binaire, codage hexadécimal..
    Par invite2dd170e6 dans le forum TPE / TIPE et autres travaux
    Réponses: 0
    Dernier message: 09/11/2012, 16h16
  4. probleme de codage phase/frequence en IRM
    Par inviteec8f5c66 dans le forum Physique
    Réponses: 64
    Dernier message: 24/06/2008, 21h11
  5. Problème de codage avec Word
    Par invite624c5402 dans le forum Logiciel - Software - Open Source
    Réponses: 2
    Dernier message: 27/08/2007, 14h16
Découvrez nos comparatifs produits sur l'informatique et les technologies.