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

probleme codage d'un microcontrolleur



  1. #1
    invite13dcd32e

    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
    invitee05a3fcc

    Re : probleme codage d'un microcontrolleur

    Petite question d'un NOB en µC ....
    Ta variable "i" est déclaré comment ?

  3. #3
    invite13dcd32e

    Re : probleme codage d'un microcontrolleur

    Code:
    int i = 0 ;

  4. #4
    invitee05a3fcc

    Re : probleme codage d'un microcontrolleur

    Et un int, c'est 8 bits ou 16 bits ?

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

    Re : probleme codage d'un microcontrolleur

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

  7. #6
    invite105cee1c

    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
    invitee05a3fcc

    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;

  9. #8
    invite13dcd32e

    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
    invitee05a3fcc

    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

  11. #10
    invite105cee1c

    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
    invite13dcd32e

    Re : probleme codage d'un microcontrolleur

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

  14. #13
    invitee05a3fcc

    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 .

  15. #14
    invite105cee1c

    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;

  16. #15
    invitee05a3fcc

    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

Discussions similaires

  1. Problème codage Manchester
    Par invite8cd72003 dans le forum Électronique
    Réponses: 0
    Dernier message: 07/01/2014, 17h27
  2. Problème avec l'interruption externe du microcontrolleur.
    Par invitec9a2d093 dans le forum Électronique
    Réponses: 4
    Dernier message: 19/04/2013, 09h22
  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, 17h16
  4. probleme de codage phase/frequence en IRM
    Par inviteec8f5c66 dans le forum Physique
    Réponses: 64
    Dernier message: 24/06/2008, 22h11
  5. Problème de codage avec Word
    Par invite624c5402 dans le forum Logiciel - Software - Open Source
    Réponses: 2
    Dernier message: 27/08/2007, 15h16
Dans la rubrique Tech de Futura, découvrez nos comparatifs produits sur l'informatique et les technologies : imprimantes laser couleur, casques audio, chaises gamer...