IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Windows Discussion :

gestion des interruptions en C


Sujet :

Windows

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre Expert
    Profil pro
    Développeur en systèmes embarqués retraité
    Inscrit en
    Mars 2006
    Messages
    952
    Détails du profil
    Informations personnelles :
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2006
    Messages : 952
    Par défaut gestion des interruptions en C
    Bonjour,

    En embarqué, quelquesoit le microprocesseur ou le microcontrôleur, on peut toujours écrire quelquechose comme ça:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    void Timer0_Init(int ticks){
        /*
        Code de l’init
        */
    }
    
    __interrupt void Timer0( void ){
        /*
        Code de l’interruption
        */
    }
    Est-ce possible sous Windows? Si ce n'est pas possible ce que je crains fortement, y a t-il une alternative à cette façon de gérer une interruption timer?

    A+

    Pfeuh

  2. #2
    Expert éminent
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 397
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 397
    Par défaut
    On ne peut pas toucher directement aux interruptions sous Windows.
    Sauf en développant un driver.

    Mais ti tu veux un timer, tu peux en avoir sous Windows (généralement en programmmation fenêtrée, par contre).
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  3. #3
    Membre chevronné Avatar de pascal.barbier
    Profil pro
    Inscrit en
    Août 2007
    Messages
    362
    Détails du profil
    Informations personnelles :
    Âge : 64
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Août 2007
    Messages : 362
    Par défaut
    Voir SetTimer
    Effectivement il faut une application fenêtrée ou plus exactement une application qui contient une pompe à message (while getMessage...) car le signal de timer est un message WM_TIMER enfilé dans la file d'attente de l'application.

  4. #4
    Membre Expert
    Profil pro
    Développeur en systèmes embarqués retraité
    Inscrit en
    Mars 2006
    Messages
    952
    Détails du profil
    Informations personnelles :
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2006
    Messages : 952
    Par défaut
    Salut;

    Merci pour vos réponses. En fait il y a quelques années, j'avais fait en VB une boite à rythmes. Je convertissais les BPM (avec une résolution de 96 pas par noire) en ticks et j'appelais une fonction d'une dll windows (dont j'ai oublié le nom...), il suffisait de lui passer le nombre de ticks et l'adresse (callback) de ma routine à exécuter tous les xx millisecondes.

    Pour un autre projet, entièrement en C MInGW + SDL, j'aimerai utiliser cette interruption timer qui me convient tout à fait. Quelqu'un aurait le nom de la dll et éventuellement le nom de la fonction? Merci d'avance, je m'en vais de ce pas jeter un oeil sur le tutoriel API Windows, on ne sait jamais, il y a peut-être un exemple d'appel en C...

    Pfeuh.

  5. #5
    Expert confirmé
    Avatar de Mat.M
    Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2006
    Messages
    8 539
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2006
    Messages : 8 539
    Par défaut
    On peut également utiliser QueryPerformanceCounter et GetTickCount

  6. #6
    Membre Expert
    Profil pro
    Développeur en systèmes embarqués retraité
    Inscrit en
    Mars 2006
    Messages
    952
    Détails du profil
    Informations personnelles :
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2006
    Messages : 952
    Par défaut
    Salut,
    Citation Envoyé par Mat.M Voir le message
    On peut également utiliser QueryPerformanceCounter et GetTickCount
    Sauf erreur de ma part, ces 2 fonctions servent à mesurer le temps, or je voudrais exécuter une fonction toutes les xxx millisecondes. Une interruption timer, en fait.

    A+

    Pfeuh

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Gestion des interruptions MATLAB
    Par dadouwhite dans le forum Interfaces Graphiques
    Réponses: 1
    Dernier message: 14/04/2011, 23h00
  2. gestion des interruptions
    Par jsebfranck dans le forum Langage
    Réponses: 2
    Dernier message: 06/07/2007, 09h15
  3. Gestion des interruptions du µProcesseur
    Par herve13 dans le forum Assembleur
    Réponses: 3
    Dernier message: 22/08/2005, 20h51
  4. Gestion des interruptions du microprocesseur sous XP
    Par herve13 dans le forum API, COM et SDKs
    Réponses: 4
    Dernier message: 20/08/2005, 18h29
  5. Réponses: 7
    Dernier message: 02/03/2005, 14h45

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo