Langage C (mesure d'une trame avec un timer)
Répondre à la discussion
Affichage des résultats 1 à 3 sur 3

Langage C (mesure d'une trame avec un timer)



  1. #1
    invite92143d06

    Langage C (mesure d'une trame avec un timer)


    ------

    Bonjour,

    Voila j'ai un projet de fin d'année a réaliser et je doit à l'aide d'un timer mesurer le temps entre un front montant et un front descendant et ensuite vérifier que ce temps est compris entre 2 valeurs.
    J'ai réussi a faire compter le timer, créer l'interruption sur un front.

    Pour le moment j'essaye donc de mesurer ce temps en envoyant un trame de 2hz sur ma carte électronique et d'allumer une led sur un front montant et l'autre sur le front descendant seulement je n'y arrive pas.

    J'utilise un PIC18F2321 et le timer 0, je pense que la ou je me trompe c'est dans la configuration des interruption avec ITCON et ITCON2 et ITCON3 ainsi que dans la configuration du timer.

    je voudrais donc s'il vous plait que vous regardiez le programme ci-dessous afin de me dire si j'ai fait des erreurs ou si les registres sont bien configuré ou si il en manque?

    le programme :
    #include<p18f2321.h>
    #include<delays.h>

    unsigned char FLAG_FRONT_MONTANT_RB0 =0;
    unsigned char TOFF_MIN =0xxx;
    unsigned char TOFF_MAX=0xxx;

    void init(void);

    //-- Programme principal
    void main (void)
    {
    TRISA=0x00;
    TRISB=0xFF;
    PORTA=0x00;
    init();
    FLAG_FRONT_MONTANT_RB0 =0;//pointeur de flanc à 0
    while(1)
    {
    }
    }

    void init (void)
    {
    ADCON1=0x0F;
    PIE1bits.CCP1IE=1;
    INTCON=0x90;
    }


    //-- Gestion des IT
    //---- Description du prgme de traitement de l'IT
    #pragma interrupt bp_it
    void bp_it(void)
    /****************************** **********
    Traitement de l'IT INT0 déclenchée par un front m sur RB0
    et de l'IT INT1 déclenchée sur front montant sur RB1 et IT INT2 IDEM

    SORTIE : var. glob.
    ENTRE : var. glob.
    ****************************** **********/
    {
    if (FLAG_FRONT_MONTANT_RB0 == 0)
    { INTCON2 = 0x80; // INT0 active sur front descendant
    FLAG_FRONT_MONTANT_RB0 =0xFF;
    PORTAbits.RA4=1;
    PORTAbits.RA5=0;
    }
    else
    {PORTAbits.RA5=1;
    PORTAbits.RA4=0;
    INTCON2 = 0xC0 ;
    FLAG_FRONT_MONTANT_RB0 = 0;
    }
    }

    //---- Initialisation du vecteur d'IT 08 par l'@ du prgme d'IT (bp_it)
    #pragma code hih_vector=0x08
    void interrupt_vector_at_high_vecto r(void)
    {
    _asm goto bp_it _endasm
    }
    #pragma code


    merci d'avance

    -----

  2. #2
    RISC

    Re : Langage C (mesure d'une trame avec un timer)

    Salut,

    Pour mesurer une période ou une impulsion il faut utiliser l'unité CCP en mode input captre qui est faite pour cela (voir le manuel). Tu peux je crois choisir entre les timer1 et timer3.

    Tu trouveras des exemples de code ici : http://www.microchip.com/codeexamples

    dont un exemple pour l'unité CCP en mode input capture:http://ww1.microchip.com/downloads/e...ut_Capture.zip

    Ce site possède d'excellent cours sur les PIC18 : http://www.aix-mrs.iufm.fr/formation...indexPIC_C.htm

    a+

  3. #3
    invite92143d06

    Re : Langage C (mesure d'une trame avec un timer)

    merci beaucoup pour votre réponse j'ai regardé un peut tout, surtout le cour et je vais essayer avec la fonction compare seulement l'entrée sur ma carte est sur la broche RB0, si cela fonctionne je la déplacerais en RB3 pour entrer sur CCP2.
    merci j'essaye et je vous tiens au courant.

Discussions similaires

  1. Programmation en C avec Timer 0 et Timer 1
    Par invite6844fe5f dans le forum Électronique
    Réponses: 43
    Dernier message: 20/04/2010, 14h27
  2. resption d'une trame serie avec une pic
    Par invitec521790c dans le forum Électronique
    Réponses: 1
    Dernier message: 01/04/2010, 13h05
  3. analyseur logique mesure de trame de telecommande
    Par invite3a1051d7 dans le forum Électronique
    Réponses: 3
    Dernier message: 24/01/2010, 08h45
  4. Mesure de T° d'une CTN avec un PIC
    Par invitee383f345 dans le forum Électronique
    Réponses: 11
    Dernier message: 12/02/2009, 20h44
  5. Grammaires formelles : mesure d'expressivité du langage
    Par invite3443c7ee dans le forum Mathématiques du supérieur
    Réponses: 3
    Dernier message: 21/09/2007, 10h01
Dans la rubrique Tech de Futura, découvrez nos comparatifs produits sur l'informatique et les technologies : imprimantes laser couleur, casques audio, chaises gamer...