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

Intterruption et revenir au DEBUT du programme ?



  1. #1
    Och

    Intterruption et revenir au DEBUT du programme ?


    ------

    Bonjour,

    j'aurais une toute petite question. Comment peut-on, en langage C, dire qu'à la fin d'une interruption, le programme ne doit pas reprendre à l'endroit où l'interruption s'est réalisée mais plutôt reprendre tout au début ?

    Je sais comment tout configurer et programmer mais je n'ai pas la moindre idée de comment fait-on pour recommencer au tout début du MAIN plutôt qu'à la suite ...

    En vous remerciant d'avance, je vous souhaite à tous une très bonne soirée.

    Och

    -----

  2. #2
    Jack
    Modérateur

    Re : Intterruption et revenir au DEBUT du programme ?

    Il faut inclure du code asm, pour remettre les registres et la pile en ordre avant de faire un jump.

    Ou alors un reset.

    A+

  3. #3
    DAUDET78

    Re : Intterruption et revenir au DEBUT du programme ?

    ce n'est pas une bonne méthode de programmation que d'utiliser ce genre de principe un peu iconoclaste !
    J'aime pas le Grec

  4. #4
    Tropique

    Re : Intterruption et revenir au DEBUT du programme ?

    C'est vrai que la méthode est violente, mais elle est utilisée pour les systèmes qui doivent avoir une très bonne résilience: à chaque fois, on repart de zéro, et même s'il y a eu un plantage, les conséquences restent limitées.
    Les données essentielles doivent être sauvées dans un espace protégé, pour qu'il y ait une continuité dans le fonctionnement lors de chaque "résurrection", et la programmation est contraignante, mais il y a des avantages: c'est comme un super watchdog inhérent au système.
    Pas de complexes: je suis comme toi. Juste mieux.

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

    Re : Intterruption et revenir au DEBUT du programme ?

    Bonjour
    Je partage l'avis de DAUDET78, cette façon d'utiliser une interruption n'est pas le signe d'une bonne structure de ton programme. Mais je ne pratique pas le c, il y a donc certainement des techniques qui m'échappent.
    Maintenant que je t'ai dit qu'il ne fallait pas le faire, je vai t'expliquer comment je l'ai fait dans un de mes vieux programmes pas trop bien structuré.
    Ton programme doit avoir une boucle principale relativement courte et à interval regulier je teste un flag qui sera lever dans la fameuse interruption, si le flag est à 0 je continue le programme normalement, si le flag est à 1 alors je saute à l'adresse qui m'interresse, pour toi c'est un goto main ou un goto 0; à toi de faire une initialisation complete des registres utiles au debut du programme, il faut faire attention à ce que la pile soit vide, donc les tests du flag doivent être dans le main et non dans des routines.
    On ne sait pas sur quoi tourne ton programme, mais pour certains µC par exemple, on peut acceder à la pile, le probleme est donc plus simple.
    Gilles

  7. #6
    Jack
    Modérateur

    Re : Intterruption et revenir au DEBUT du programme ?

    Il est vrai que ce n'est pas recommandable. L'idéal serait de savoir pourquoi avoir recours à une telle opération.

    A+

Discussions similaires

  1. Revenir au lycée
    Par kekre dans le forum Orientation avant le BAC
    Réponses: 3
    Dernier message: 09/11/2008, 12h46
  2. Réponses: 8
    Dernier message: 17/05/2008, 13h58
  3. Quitter un lycée et y revenir
    Par dani danou dans le forum Orientation avant le BAC
    Réponses: 3
    Dernier message: 12/02/2007, 00h52
  4. psp, revenir a la version 1.5 ??
    Par T!Zz dans le forum Matériel - Hardware
    Réponses: 4
    Dernier message: 01/01/2006, 15h01
Découvrez nos comparatifs produits sur l'informatique et les technologies.