detect Edge
Répondre à la discussion
Affichage des résultats 1 à 21 sur 21

detect Edge



  1. #1
    nirvo

    detect Edge


    ------

    Bonjour,
    je souhaite détecter l'interruption sur chaque front (montant et descendant) sur INT0 d'un pic 18f et lancer chaque foisun timer 0 sur front mantant et timer1 sur front descendant pour mesurer le temps ecouler mais les timers ne retournent pas des valeurs juste

    voila mon code :
    void interrupt_IO_Timer(void)
    {
    if(INTCONbits.INT0IF==1) //detection d'une intéruption sur INTO
    {
    if(INTCON2bits.INTEDG0 == 1)
    {
    T0CON &=0x08; //arret timer 0
    T1CON |=0x81; //lancement timer1
    duree=0;
    TL0 = TMR0L;
    TH0 = TMR0H;
    duree = (TL0 + TH0*256); //calcule de la duréé
    tabFreq[i++]= duree;
    TL0=0;
    TH0=0;
    TMR0H=0x00; // Initialisation de Registre de timer 0
    TMR0L=0x00;
    INTCON2bits.INTEDG0 = 0;
    INTCONbits.INT0IF = 0;
    INTCONbits.GIE = 1;
    }
    else if(INTCON2bits.INTEDG0 == 0)
    {
    T0CON |= 0x88; //lancement timer0
    T1CON &=0x80; //arret timer 1
    duree=0;
    TL1 = TMR1L;
    TH1 = TMR1H;
    duree = (TL1 + TH1*256); // retourne la duree
    tabFreq[i++]= duree;
    TMR1H=0x00; // Initialisation de Registre de timer1
    TMR1L=0x00;
    TL1=0;
    TH1=0;
    INTCON2bits.INTEDG0 = !INTCON2bits.INTEDG0;
    INTCONbits.INT0IF = 0;
    INTCONbits.GIE = 1;
    }
    }
    je sais pas si le probleme viens des tmers car sa marche pas meme si j'utilise le lancement par bit TxCONbits.TMRxON

    merci

    -----

  2. #2
    badrbo

    Re : detect Edge

    Tu peut utiliser le module CCP (Capture Compare Pwm) en mode "capture" pour mesurer la largeur d'une impulsion, en fait le module CCP a pour role de fait ce genre des fonctions

  3. #3
    nirvo

    Re : detect Edge

    Bonjour,
    merci pour la réponse, mais je vois que le module CCP est utilisé soit sur une detection sur front montant seulement ou descendant seulement, alors que moi je veux faire un capture entre chaque front et tout les front depuis le debut de la trame à la fin . puis il faut stocker le temps ecouler pendant chaque impulsion de niveau basse ou haute
    front montant - front déscendant et
    front déscendant - front montant
    car sa va me servir de décodage d'une trame de données

    c'est pour sa j'ai voulu me servir par comptage
    j'ai un pic 4MHZ sans prediviseur j'ai un TCY=1MicroS alors la valeur de timer me donne directement le temps ecoulé en MicroS

    merci

  4. #4
    Qristoff
    Animateur Électronique

    Re : detect Edge

    Bonjour,
    quel type de modulation veux tu décoder ? c'est de la modulation proportionnelle de largeur d'impulsion PWM ou PDM ? modulation binaire ?
    si c'est du binaire, un seul timer suffit.
    On déclenche le timer sur le front montant pour une durée équivalente à la 1/2 période du signal et lorsque le timer expire, on regarde l'état du signal d'entrée: si E=0 alors la durée d'impulsion est inférieure à 1/2 T, si E=1, c'est le contraire !
    Tout existe, il suffit de le trouver...!

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

    Re : detect Edge

    merci
    alors la frequence du signal est variable le long de la trame,

    actuellement je dois detecter seulement les front puis mesurer le temps ecoulé comme j'ai expliqué mais le timer me revient des valeurs fausses
    c'est un decodage spécifique des bit, chaque bit est représenté par des transitions haut bas et bas haut puis sa dépend aussi de temp entre chaque deux impulsion haut bas et bas haut(niveau)

    alors premierment je dois valider les mesure en utilisant l'oscilloscope comme réference puis je passe à transformer ls fraquence en bit

    merci

  7. #6
    Qristoff
    Animateur Électronique

    Re : detect Edge

    c'est un decodage spécifique des bit, chaque bit est représenté par des transitions haut bas et bas haut puis sa dépend aussi de temp entre chaque deux impulsion haut bas et bas haut(niveau)
    l'information est contenue dans la période du signal ou dans la largeur de l'impulsion (haute ou basse) ?
    Tout existe, il suffit de le trouver...!

  8. #7
    nirvo

    Re : detect Edge

    re bonjour
    l'information est contenu dans le niveau du port B (INT0)et le temps de chaque implusion
    le test du RB0 est pas dificile mais le temps de chauque implusion j'ai pas arrivé a le faire bien pour l'instant

    merci

  9. #8
    Qristoff
    Animateur Électronique

    Re : detect Edge

    il va falloir que tu soignes tes explications et la manière de rédiger tes réponses car je ne comprends rien.
    l'information est contenu dans le niveau du port B (INT0)et le temps de chaque implusion
    le test du RB0 est pas dificile mais le temps de chauque implusion j'ai pas arrivé a le faire bien pour l'instant
    La moindre des choses est de se relire, c'est incompréhensible !
    Tout existe, il suffit de le trouver...!

  10. #9
    nirvo

    Re : detect Edge

    bonsoir,
    je suis désolé, mon français n'est pas bon, alors j'ai voulu dire que l'information dépends du niveau de portB0 et aussi de temps ecoulé (temps de chaque impulsion) ou autrement le temps entre chaque deux front (montant et descendant ou descendant et montant)

    alors si pour sa que je doit compter premièrement le temps puis en fonction du tableau de tout les temps que je récupère et les niveau du port B je passe au décodage .

    merci

  11. #10
    Qristoff
    Animateur Électronique

    Re : detect Edge

    alors j'ai voulu dire que l'information dépends du niveau de portB0
    ça m'étonnerais ! c'est du niveau logique ! du 0V/5V ou 0V/3.3V !
    et aussi de temps ecoulé (temps de chaque impulsion) ou autrement le temps entre chaque deux front (montant et descendant ou descendant et montant)
    donc du rapport cyclique ! et avec une période constante !
    TH+TL=1/F=constante
    Tout existe, il suffit de le trouver...!

  12. #11
    nirvo

    Re : detect Edge

    le niveau est 0:5 V mais la période n'est pas constante sur toute la trame alors il faut que chaque fois que je détecte que ma période est changé je la mis à jours

    le changement de la période est d'ordre de microS mais si je la mais pas à jours je cumule l'erreur et puis les bits de fin de la trame seront faux

    maintenant j'ai réussi à recuperer les valeurs exacte des temps des impulsions (timers)
    le problème était dans l'initialisation du tableau et les INTEDGE

    merci

  13. #12
    Qristoff
    Animateur Électronique

    Re : detect Edge

    mais la période n'est pas constante sur toute la trame
    ah bon ! donc je repose ma question du post #4 !
    Tout existe, il suffit de le trouver...!

  14. #13
    nirvo

    Re : detect Edge

    slt
    j'ai pas compris, ce que vous vouez dire par sa,
    je vous es dit que la periode change au fur à mesure c'est pour sa il faut faire l'actualisation
    ah bon ! donc je repose ma question du post #4 !
    qu'elle question ?

    merci

  15. #14
    Qristoff
    Animateur Électronique

    Re : detect Edge

    qu'elle question ?
    post #4: quel type de modulation veux tu décoder ?
    qu'est ce qui fournit le signal à décoder ? une réference ?
    Tout existe, il suffit de le trouver...!

  16. #15
    nirvo

    Re : detect Edge

    slt
    oui j'ai une référence pour valider mon résultat, c'est un décodage d'un signal (trame) à des bits qui forment l'information.

    bonne nuit

  17. #16
    Qristoff
    Animateur Électronique

    Re : detect Edge

    Citation Envoyé par nirvo Voir le message
    slt
    oui j'ai une référence pour valider mon résultat, c'est un décodage d'un signal (trame) à des bits qui forment l'information.

    bonne nuit
    Tu fais exprès de ne pas comprendre mes questions !
    je te demande quel appareil ou quelle fonction génére la trame ? pour enfin savoir quel est le type de modulation !
    Tout existe, il suffit de le trouver...!

  18. #17
    nirvo

    Re : detect Edge

    bonjour,
    ah ok, c'est un support magnétique qui génère des trames

    nirvo

  19. #18
    Qristoff
    Animateur Électronique

    Re : detect Edge

    Citation Envoyé par nirvo Voir le message
    bonjour,
    ah ok, c'est un support magnétique qui génère des trames

    nirvo
    Ok ! on ne saura jamais qu'elle est le type de modulation, donc je jette l'éponge et trouve toi quelqu'un d'autre plus patient !
    Tout existe, il suffit de le trouver...!

  20. #19
    nirvo

    Re : detect Edge

    slt
    Ok ! on ne saura jamais qu'elle est le type de modulation, donc je jette l'éponge et trouve toi quelqu'un d'autre plus patient !
    je vous comprends pas, mon souci est clair depuis le début, je trouve pas l'interet de la source pour moi c'est une trame généré d'un support magnétique que j'ai modulé et mis en forme par une carte électronique (trame numérique )
    et je veux la décoder

    voila mon souci : j'avais des probleme de timer et de déclenchement de edge, et je cherche une méthode de mesure de temps

    voila mais si je savais pas que je dois dire tout pour y arrivé à ma question sa va etre long
    j'ai un souci au niveau sotware, le niveau hardware est validé

    merci pour ta patience jusque la !!

    nirvo

  21. #20
    badrbo

    Re : detect Edge

    si tu veut lire des trames binaires, il suffit de lire l'etat logique chaque periode de temps ....la periode depend de la vitesse de lecture du support magnetique et de baudrate d'enregistrement

  22. #21
    nirvo

    Re : detect Edge

    Bonjour,
    la periode depend de la vitesse de lecture du support magnetique et de baudrate d'enregistrement

    maintenant je vois que mon quartz est pas suffisant car des fois l'impulsion prend 400MicroS et les test que je fait pendant cette impulsion pour faire le décodage prennent plus ce qui entrenne des erreurs sur le résultat alors je dois passer pour un autre quartz

    j'ai un quartz de 4Mhz Tcy = 1microS alors si je passe sur 20 Mhz le tcy sa sera tres bon ( le calcul prendra moin de temps)

    merci

Discussions similaires

  1. un photodiode qui détect la radioactivité
    Par snap63 dans le forum Électronique
    Réponses: 3
    Dernier message: 02/06/2010, 13h07
  2. Solid Edge sous mac?
    Par invite7f929152 dans le forum Logiciel - Software - Open Source
    Réponses: 0
    Dernier message: 01/05/2008, 13h42
  3. probleme de connection a internet via Edge/GPRS
    Par jackwz dans le forum Internet - Réseau - Sécurité générale
    Réponses: 1
    Dernier message: 04/08/2006, 22h09
  4. detect IR
    Par inviteeb6fdc36 dans le forum Électronique
    Réponses: 7
    Dernier message: 07/04/2003, 15h33
Découvrez nos comparatifs produits sur l'informatique et les technologies.