[Programmation] PIC - Conflit d'interruption
Répondre à la discussion
Affichage des résultats 1 à 8 sur 8

PIC - Conflit d'interruption



  1. #1
    sandrecarpe

    PIC - Conflit d'interruption


    ------

    Bonsoir à tous,

    Je suis en train de programmer un pic16f1777 toujours pour mon four à CMS. En entreprise, je fais plutôt du pic32, alors quand je me suis rendu compte que sur ce pic je n'ai pas de priorité d'interruption ça me met un peu mal.
    Pendant une phase de fonctionnement du système, le "zero crossing detector" me génère une interruption à chaque passage de l'onde secteur par 0. Ceci arrive toutes les 10 ms.
    Mais le timer qui créer ma base de temps me génère une interruption aussi toutes les 10 ms...
    Vous voyez venir le problème ? Si ces deux événements surviennent en même temps, il faut absolument que le zero crossing detector ne prenne pas de retard pour ne pas faire foirer la commande de mon triac.
    Y a t-il un terme pour décrire ce genre de soucis ? Comment résoudre ce problème (à part changer de PIC svp ) ?

    -----

  2. #2
    Chtulhu

    Re : PIC - Conflit d'interruption

    Citation Envoyé par sandrecarpe Voir le message
    Mais le timer qui créer ma base de temps me génère une interruption aussi toutes les 10 ms...
    Bonsoir,

    Il suffit de changer votre base de temps mais dans les faits d'un coté vous avez un événement qui survient par un changement d'état d'une entrée (zero crossing detector) et de l'autre à l'issu d'un comptage (Interrupt Flag), ça se filtre très bien dans la routine d'interruption.
    Même si l'une est traitée avant l'autre, le décalage sera minime (quelques cycles donc quelques µs).
    Dernière modification par Chtulhu ; 22/06/2018 à 22h28.

  3. #3
    Vincent PETIT
    Animateur Électronique

    Re : PIC - Conflit d'interruption

    Peut être qu'ici l'intérêt est de faire une machine à état (traitement dans le programme principal et pas dans la fonction d'interruption) comme ça si les événements arrivent en même temps, ce n'est pas grave, à peine sortie de la première fonction d'interruption que tu rentreras dans l'autre.
    Là où il n'y a pas de solution, il n'y a pas de problème.

  4. #4
    Chtulhu

    Re : PIC - Conflit d'interruption

    Oui c'est mieux.
    Même si "machine d'état" c'est à la mode mais rarement bien mis en oeuvre, mais l'idée c'est ça.
    Une fonction switch sera bien suffisante.

  5. A voir en vidéo sur Futura
  6. #5
    Vincent PETIT
    Animateur Électronique

    Re : PIC - Conflit d'interruption

    Citation Envoyé par Chtulhu Voir le message
    Même si "machine d'état" c'est à la mode mais rarement bien mis en oeuvre, mais l'idée c'est ça.
    Une fonction switch sera bien suffisante.
    +1
    Et souvent lorsque j'en vois (sur un microcontroleur sans OS) je peux dire, quasi à coup sûr, si le programme a été fait par un électronicien pratiquant l'informatique ou par un informaticien pratiquant l'électronique.

    Par contre, la machine à état c'est pas plutôt très vieux ? Moi j'ai appris ça quasi en même temps que la logique programmable VHDL (PAL, GAL)... Le truc bien séquentiel.
    Dernière modification par Vincent PETIT ; 23/06/2018 à 09h14.
    Là où il n'y a pas de solution, il n'y a pas de problème.

  7. #6
    Chtulhu

    Re : PIC - Conflit d'interruption

    Citation Envoyé par Vincent PETIT Voir le message
    je peux dire, quasi à coup sûr, si le programme a été fait par un électronicien pratiquant l'informatique ou par un informaticien pratiquant l'électronique.
    Tout à fait d'accord avec vous, c'est le jour et la nuit.
    A chacun son métier et les choses seront bien faites, d'où le besoin de travailler en équipe pluridisciplinaire.
    Les nouvelles générations ont bien du mal avec ça, pensant après quelques codes plus ou moins foireux glanés ici ou là sur un forum de savoir faire...
    Par contre, la machine à état c'est pas plutôt très vieux ? Moi j'ai appris ça quasi en même temps que la logique programmable VHDL (PAL, GAL)... Le truc bien séquentiel.
    Non pas vraiment, les concepts temps réels sont toujours d'actualité.

  8. #7
    jiherve

    Re : PIC - Conflit d'interruption

    Bonjour,
    En effet avec cette merveille il n'est même pas possible de ré-démasquer les autres IT car au final il n'y en a qu'une et un seul jeu de registres de sauvegarde du contexte.
    ceci dit si l'interruption timer n'est pas trop longue l'effet sera minime.
    Une solution serait de synchroniser le timer sur le passage à zéro voir même à se passer de cette interruption si la fonction passage à zéro est toujours active et disponible.
    JR
    l'électronique c'est pas du vaudou!

  9. #8
    sandrecarpe

    Re : PIC - Conflit d'interruption

    Bonjour,

    Merci à tous pour vos réponse. En effet l'ISR du timer se contente de lever un flag en une ligne. Donc au pire comme vous dites, c'est surement négligeable en terme de temps.
    Si je regarde l'assembleur correspondant à l'ISR du timer, il faut 13 instructions entre le moment où on entre dans la routine et le moment où on en sort. Sachant que le pic tourne avec un quart de 20Mhz, ça fait à peu près 3 µs.
    Si juste après le zero crossing lance une interruption, il faut une vingtaine d'instruction avant de piloter le triac, soit environ 4µs.
    Au total ça fait, avec un peu de marge (car les CALL, les GOTO,... comptent pour deux cycles si je me rappelle bien), 10µs de latence : le secteur à atteint environ 1V
    Dernière modification par sandrecarpe ; 24/06/2018 à 10h30.

Discussions similaires

  1. Conflit d'IP ?
    Par Mahow dans le forum Internet - Réseau - Sécurité générale
    Réponses: 5
    Dernier message: 07/08/2014, 22h52
  2. Conflit
    Par BIG136 dans le forum Psychologies (archives)
    Réponses: 2
    Dernier message: 12/07/2012, 14h01
  3. PIC : interruption externe et interruption on change ?
    Par jlg_47 dans le forum Électronique
    Réponses: 10
    Dernier message: 09/04/2012, 12h41
  4. Conflit d'IP
    Par invite16f1fd72 dans le forum Internet - Réseau - Sécurité générale
    Réponses: 4
    Dernier message: 24/11/2008, 23h18
  5. conflit entre 2 JS
    Par invite36ec7083 dans le forum Logiciel - Software - Open Source
    Réponses: 0
    Dernier message: 04/08/2008, 18h39
Découvrez nos comparatifs produits sur l'informatique et les technologies.