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
    invite8fabcf6d

    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 : 82
Taille : 29,2 Ko

    merci a vous

    -----

  2. #2
    invite66c1ab93

    Re : pourquoi ce programme ne marche pas ?!!

    Bonjour,

    Quel est ton compilateur ?

  3. #3
    invite8fabcf6d

    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
    invite8fabcf6d

    Re : pourquoi ce programme ne marche pas ?!!

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

  7. #6
    invite66c1ab93

    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
    invite8fabcf6d

    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
    invite070f05b5

    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 invitec3143530 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 inviteeddea82a 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
Dans la rubrique Tech de Futura, découvrez nos comparatifs produits sur l'informatique et les technologies : imprimantes laser couleur, casques audio, chaises gamer...