pourquoi ce programme ne marche pas ?!!
Répondre à la discussion
Affichage des résultats 1 à 8 sur 8

pourquoi ce programme ne marche pas ?!!



  1. #1
    yassinema1992

    pourquoi ce programme ne marche pas ?!!


    ------

    salut

    jais écrit un programme de pic16f77a pour mesurer le temps que la patte RC0 est égal a 1
    ce programme lance le timer puis il attend que la patte RC0 égal a 1 après il initialise le timer et il le laisse compter
    jusque que la patte RC0 égal a 0
    puis on calcul le temps en microseconde est si il est sup de 10 seconde on fait PORTB=0b10001111
    si autre PORTB.F5=1
    voila le code

    Code:
    #define ir_in portc.f0
    unsigned char COUNT;
    unsigned int retint;
    void interrupt()
    {
         count++;
         intcon=0b00100000;
         TMR0=0;
    }
    unsigned int calcul(){
          TMR0= 0; count=0;
       while(ir_in == 1){ }
          retint=2*(TMR0+(count*256));
          return retint;
    }
      void read(){
    unsigned int temp_ir;
        while(ir_in == 0){ }
        temp_ir = calcul();
         if((temp_ir>10000000)) {
            PORTB=0b10001111;
                Delay_ms(1000);
                }
                else  {
                PORTB.F5=1;
                  Delay_ms(1000);
                }
        }
    
     void main() {
        TRISC=0xFF;
        TRISB=0;
        PORTB=0;
        PORTC=0;
        option_reg=0b10000000; //confuguration
        intcon=0b10100000;    //validation du timer
        TMR0 = 0;
        while(1){
            read();
            }
            while(1);
        }
    pour le montage Nom : untitled-1_zpsb473a6fc.png
Affichages : 75
Taille : 29,2 Ko

    merci a vous

    -----

  2. #2
    MiKL.66

    Re : pourquoi ce programme ne marche pas ?!!

    Bonjour,

    Quel est ton compilateur ?

  3. #3
    yassinema1992

    Re : pourquoi ce programme ne marche pas ?!!

    bonjour

    c microc pro

    merci

  4. #4
    remy01

    Re : pourquoi ce programme ne marche pas ?!!

    Bonjour,
    avec ton compilateur, combien d'octets sont prévus pour un " int " ? ( temp_ir par ex )
    ( si 2 octets, le max est : 65535 et ne sera jamais supérieur à 10000000 ! )
    A+ ....Rémy.

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

    Re : pourquoi ce programme ne marche pas ?!!

    jais transformer tout les int en long mais çà na pas marche

  7. #6
    MiKL.66

    Re : pourquoi ce programme ne marche pas ?!!

    Ne connaissant pas ton compilateur, je ne peux pas t'aider sur la config.

    Est ce que tu as déjà fait un programme avec cette config qui fonctionne ?
    Cela nous permettrait de voir s'i faut chercher plus sur ton prog ....

  8. #7
    yassinema1992

    Re : pourquoi ce programme ne marche pas ?!!

    jais trouver cette page http://www.mikroe.com/download/eng/d..._constants.htm

    jais changer au unsigned long sa capacité est 2147483648 – 4294967295

  9. #8
    Benq720

    Re : pourquoi ce programme ne marche pas ?!!

    Bonjour,
    je pense pas qu'il y a pas besoin d'utiliser les timers avec un temps de 10 secondes
    Voici le programme que je te propose si j'ai bien compris :

    Code:
    void main() {
    
           int temp = 0;
           TRISC = 0x01;
           TRISB = 0x00;
           PORTB = 0x00;
    
           while(1) {
                if (PORTC == 0x01) {
                   do{
                      Delay_ms(10);
                      temp = temp++;
                      if(temp >= 1000){
                           PORTB = 0b10001111;
                      }
                   }while (PORTC == 0x01);
                   
                   if(temp < 1000){
                        PORTB.F5 = 1;
                   }
                   temp = 0;
                }
           }
    }
    on n'est pas a la milliseconde près pour 10s donc j'ai négligé le temps d’exécution des instructions.

    Cordialement

Discussions similaires

  1. Pourquoi ça marche pas ?
    Par Linkounet dans le forum Physique
    Réponses: 2
    Dernier message: 15/07/2011, 06h26
  2. Programme ASM simple qui ne marche pas
    Par inoxxam dans le forum Électronique
    Réponses: 9
    Dernier message: 21/03/2010, 11h21
  3. Pourquoi ça ne marche pas ?
    Par zanzeoo dans le forum Électronique
    Réponses: 24
    Dernier message: 19/07/2009, 08h03
  4. ce site il marche pas pourquoi
    Par invite0d1d20cb dans le forum Internet - Réseau - Sécurité générale
    Réponses: 1
    Dernier message: 10/07/2009, 19h59
  5. Pourquoi ça marche pas?
    Par invite49b0859e dans le forum Mathématiques du supérieur
    Réponses: 1
    Dernier message: 02/06/2008, 22h04
Découvrez nos comparatifs produits sur l'informatique et les technologies.