Répondre à la discussion
Affichage des résultats 1 à 5 sur 5

help ::TIMER1+MIKROC!!!



  1. #1
    hissokaaaa

    help ::TIMER1+MIKROC!!!


    ------

    Salut,
    je veux calculer le temps entre la montée du première front (porta.f0) et la montée du second front(porta.F1), l'écran LCD affiche toujours 30.999 3 NAN
    quelqu'un peut m'aider à trouver le problème.
    j'utilise le pic 16F677 avec 10mhz
    Code:
      char         tim_l=0;
            char         tim_h=0;
            unsigned int Timer_1=0;
            float        Timer_2=0;
            char         Timer_txt[6];
    void main()
    {
    T1CON.F7=1;
    T1CON.TMR1GE=1;
    T1CON.F4=0;
    T1CON.F5=0;
    ansel=0x00;
    anselh=0X00;
    TRISC =0x00;
    trisa.f0=1;
    trisa.f1=0;
      Lcd_Init(&PORTC);
      Lcd_Cmd(LCD_CLEAR);
       Lcd_Cmd(LCD_CURSOR_OFF);
    while(1)
    {
    TMR1L=0;
    TMR1H=0;
    if((PORTa.F0==1)||(porta.f1==1)){T1CON.TMR1ON=1;}
    if((porta.f1==0)&&(porta.f1==0)){T1CON.TMR1ON=0;}
    
    Timer_1 = TMR1H;
    Timer_1 = Timer_1 << 8;
    Timer_1 = Timer_1 | TMR1L;
    floatToStr(Timer_1,Timer_txt);
    Lcd_Out(1,1,Timer_txt);
    }
    }

    -----

  2. Publicité
  3. #2
    kronanberg

    Re : help ::TIMER1+MIKROC!!!

    Salut !

    Bon je sais pas si tu dois calculer avec une précision l'écart entre le front montant du 1er et du 2ème signal mais si c'est le cas j'aurai utilisé des interruptions externes pour déclencher le timer. mais dans ce cas la, il faudrait que tu change de PIC.

    sinon ya des choses qui paraissent bizarre dans ton code :
    Par exemple tu declares pour tes 2 signaux à comparer (si j'ai bien compris) 1 signal en entrée (trisa.f1=0) et un signal en sortie (trisa.f0=1).
    Les 2 signaux devraient être déclarer en entrée.

    Sinon tu as aussi des erreurs dans tes tests, tu compares 2 fois la même chose : "(porta.f1==0)&&(porta.f1= =0)"

    Donc ça peut être logique de trouver tout le temps le meme temps.
    à+

  4. #3
    vede

    Cool Re : help ::TIMER1+MIKROC!!!

    Bonjour,

    je comprends pas d'où sors le 30.999 (30,999)... ni le "3" et ni le "NotANumber"...
    il manque du code... obligé...

    et c'est quoi qui génère les flancs? un BP? un GBF?

    sinon kronanberg à raison...
    ce n'est ni optimal...
    ni très compréhensible...

    commence par commenter ton code...
    qu'on suive/comprenne ton raisonnement...
    afin de pouvoir t'aider...

    vede
    ;O]

  5. #4
    hissokaaaa

    Re : help ::TIMER1+MIKROC!!!

    Code:
            char         tim_l=0;
            char         tim_h=0;
            unsigned int Timer_1=0;
            float        Timer_2=0;
            char         Timer_txt[6];
    
    void main()
    {
    T1CON.F7=1;
    T1CON.TMR1GE=1;
    T1CON.F4=0;
    T1CON.F5=0;
    ansel=0x00;  //tt les pins en digital
    anselh=0X00;   //  tt les pins en digital
    TRISC =0x00;  //portc en sortie
    trisa.f0=1;    //porta en entrée
    trisa.f1=1;    // porta en entrée
      Lcd_Init(&PORTC);     //initialisation du lcd
      Lcd_Cmd(LCD_CLEAR);
    	Lcd_Cmd(LCD_CURSOR_OFF);
    while(1)
    {
    TMR1L=0; //le timerL =0
    TMR1H=0; // le timerH =0
    if((PORTa.F0==1)||(porta.f1==1)){T1CON.TMR1ON=1;} //si porta.f0=1 ou porta.f1=1 on déclanche le timer1
    if((porta.f0==1)&&(porta.f1==1)){T1CON.TMR1ON=0;}//si porta.f0=1 ou porta.f1=1 on enclanche le timer1
    
    Timer_1 = TMR1H;
    Timer_1 = Timer_1 << 8;
    Timer_1 = Timer_1 | TMR1L;
    floatToStr(Timer_1,Timer_txt);
    Lcd_Out(1,1,Timer_txt);     //transmettre sur l'LCD
    }
    }

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

    Re : help ::TIMER1+MIKROC!!!

    le timer sera déclenché par une impulsion,mais là j'essaie par un front comme ça ""__|------------""

Discussions similaires

  1. Probleme Timer1 PIC16f690
    Par adrien44230 dans le forum Électronique
    Réponses: 25
    Dernier message: 27/01/2010, 23h39
  2. interruption avec timer1
    Par pitch2158 dans le forum Électronique
    Réponses: 26
    Dernier message: 05/04/2009, 17h14
  3. Timer1 et timer0
    Par guifou dans le forum Électronique
    Réponses: 4
    Dernier message: 18/01/2009, 06h16
  4. Timer1
    Par YTK dans le forum Électronique
    Réponses: 2
    Dernier message: 26/04/2007, 16h10
  5. PB de timer1 sur pic
    Par romelec dans le forum Électronique
    Réponses: 3
    Dernier message: 01/03/2004, 14h11
Découvrez nos comparatifs produits sur l'informatique et les technologies.