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 untitled-1_zpsb473a6fc.png

    merci a vous

    -----

  2. Publicité
  3. #2
    MiKL.66

    Re : pourquoi ce programme ne marche pas ?!!

    Bonjour,

    Quel est ton compilateur ?

  4. #3
    yassinema1992

    Re : pourquoi ce programme ne marche pas ?!!

    bonjour

    c microc pro

    merci

  5. #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.

  6. Comparatifs

    Gagnez du temps et de l'argent grâce à nos comparatifs de produits. Parmi nos sujets :
  7. #5
    yassinema1992

    Re : pourquoi ce programme ne marche pas ?!!

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

  8. A voir en vidéo sur Futura
  9. #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 ....

  10. Publicité
  11. #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

  12. #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 riflux 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 sen249 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.