Utilisation des interruption sous XP en C

cladstrife911 Messages postés 5 Date d'inscription jeudi 23 octobre 2008 Statut Membre Dernière intervention 15 mars 2009 - 15 mars 2009 à 18:52
cs_ghuysmans99 Messages postés 3982 Date d'inscription jeudi 14 juillet 2005 Statut Membre Dernière intervention 30 juin 2013 - 15 mars 2009 à 22:46

4 réponses

cladstrife911 Messages postés 5 Date d'inscription jeudi 23 octobre 2008 Statut Membre Dernière intervention 15 mars 2009
15 mars 2009 à 18:52
Bonjour,

J'ai pas mal cherché sur le net mais je n'ai rien trouvé qui puisse m'aider.
Je voudrai, par l'intermédiaire d'une interruption, récupérer les interruptions d'horloges.
J'ai testé plusieur morceau de code mais à chaque ça bloque à la compilation sur la ligne de déclaration de l'interruption.
J'utilise codeBlocks et le compilateur GNU GCC compiler. Il me fait comme erreur "error: variable or field `interrupt' declared void".
Le code à été récupéré sur internet je n'ai rien changé, à parement il marche en turbo C. J'ai essayé de mettre d'autre #include mais ça ne change rien.

#include <stdio.h>
#include <dos.h>
#define NUM_VECTEUR 0X1C

int compteur=0;
void interrupt (*ancien_pg_it)();

// Mon programme d'IT
void interrupt (mon_pg_it)()
{
disable(); // Masque l'interruption
compteur++; // Incrémente le compteur
enable(); // démasque l'interruption
}

void main(void)
{
char n=0;

//Sauvegarde l'ancienne adresse de la routine d'IT
ancien_pg_it = getvect(NUM_VECTEUR);

//Initialise vecteur d'It avec le nouveau
programme d'IT
setvect(NUM_VECTEUR, mon_pg_it);

while (compteur < 10) n++;

//Réinitialise le vecteur d'IT avec l'ancien
programme d'IT
setvect(NUM_VECTEUR, ancien_pg_it);

printf("Boucle while exécutée %d fois \n", n);
printf("Module IT appel&#8218; %d fois\n\n",compteur);
}


Merci d'avance pour votre aide.

++
0
cs_ghuysmans99 Messages postés 3982 Date d'inscription jeudi 14 juillet 2005 Statut Membre Dernière intervention 30 juin 2013 16
15 mars 2009 à 20:06
Plus possible d'utiliser ces vieilleries sous XP.
Les interruptions DOS ont définitivement disparu.
Pour faire fonctionner tout ça, d'abord compile avec un vieux compilo (Turbo C, par exemple) et fais tourner sous DOS.
0
cladstrife911 Messages postés 5 Date d'inscription jeudi 23 octobre 2008 Statut Membre Dernière intervention 15 mars 2009
15 mars 2009 à 21:20
et comment faire pour gérer les interruptions sous XP alors?
En passant par des Hook? et pour le timer en passant par settimer...etc???
0
cs_ghuysmans99 Messages postés 3982 Date d'inscription jeudi 14 juillet 2005 Statut Membre Dernière intervention 30 juin 2013 16
15 mars 2009 à 22:46
Oui, c'est à ma connaissance le seul moyen.
0
Rejoignez-nous