Forums Rue-Montgallet.com
Rue-Montgallet.comRue-Hardware.comRue-Occasion.comRue-DVD.comRue-Jeuxvideo.comRue-AudioVideo.comRue-Telephone.comForums
S'inscrire | S'identifier |
| Recherche avancée | Aide
 
 

Il y a 47 utilisateurs connus et inconnus. Pour voir la liste des connectés connus, cliquez ici

 Mot :   Pseudo :  
 
Bas de page
Auteur
 Sujet :

interruption en c ?

 
n°19296
the Darck-​Shooter
lhomme a l'ortographe parfaite
Profil : Habitué
Posté le 29-05-2008 à 21:21:50  profilanswer
 

:hello:
 
je cherche a faire une interruption en c du type:
 
int main(void)
{
/
prog
/
si je tape sur la touche c => lance la fonction enreg_courb(etikett_x,etikett_y,xy_courbe);
}
void enreg_courb(char *a,char *b,int t[40]);
{
/
prog
/
}
je sais comment faire avec un pic et je me demande si c'est faisable en c ou si il y a moyen de le faire en assembleur et de l'intègre dans un programme c.
si non peut-on contourner sa avec la fonction kbhi si oui pouvez vous donner un exemple car je n'arrive pas a faire compiler cette fonction  :jap:  
 
ps: le prog doit tourner sur windows
 
merci  :jap:


Message édité par the Darck-Shooter le 29-05-2008 à 21:28:50

---------------
ue la vie est amère quand on la boit sans sucre au fond un petit verre.
Votez pour interdire la Borland Graphics Interface (BGI) (et les profs incompétents dans la foulée ça fera pas de mal)
 
Membre de la Team "j'suis en vacances"
n°19298
cmoila
Profil : Membre
Posté le 30-05-2008 à 21:03:12  profilanswer
 

Les interruptions et conséquences logicielles sont un sujet très vaste. Je vais essayer de résumer en simplifiant pas trop.
 
D'abord, les interruptions sont un concept matériel. C'est à dire que c'est une fonctionnalité du CPU (des pates, sur la puce). Un PIC sert justement à ça. La plus simple des interruptions c'est le bouton reset du PC, qui oblige la puce a se réinitialiser immédiatement quelque soit la situation.
Bien sûr, si les interruptions c'est du matériel, il y a forcement une partie logiciel qui va avec. Cette partie c'est la gestion du matériel de bas niveau c'est à dire le noyau de base du système d'exploitation. Dans un PC ce qui gère les interruptions, c'est le BIOS qui est écrit en assembleur du CPU et du chipset. La plupart des périphériques branchés sur un PC, passe par une interruption pour communiquer un changement d'état. C'est le cas du controleur de clavier. Qui appelle matériellement le CPU; lequel déroute son fonctionnement sur la bonne routine du bios. Ensuite c'est le systéme d'exploitation qui intervient pour faire le traitement adapté. La façon dont tu vas utiliser cette information dépend donc de l'OS et de ses API et non pas d'un langage de programmation particulier.  
 
Ensuite, ce concept matériel à donné naissance à un concept de programmation qui lui dépend du langage. C'est la programmation événementielle qui généralise le principe des interruptions. Pour pouvoir faire de la programmation événementielle correcte, il faut 2 conditions : un OS qui le soit, et un langage de prog qui le permette. Windows est d'origine un OS qui offre une API de gestion de messages meme dans un langage comme le C qui ne le permet pas de façon standard, mais faut le bon compilateur et c'est très compliqué. Par contre, si tu utilises un langage objet avec des bibliotheques de classes orientées programmation événementielle, alors tout devient plus simple. Comme c'est le cas avec VB, C# et C++, quand tu programmes sous le framwork .net, ou du java quand tu programmes pour une virtual machine.  
 
Donc la premiere chose à faire, est de choisir ton outil de programmation, car les réponses concretes en dépendent. Quel C ? Quel windows ?

n°19299
the Darck-​Shooter
lhomme a l'ortographe parfaite
Profil : Habitué
Posté le 31-05-2008 à 02:05:45  profilanswer
 

cmoila a écrit :

Les interruptions et conséquences logicielles sont un sujet très vaste. Je vais essayer de résumer en simplifiant pas trop.
 
D'abord, les interruptions sont un concept matériel. C'est à dire que c'est une fonctionnalité du CPU (des pates, sur la puce). Un PIC sert justement à ça. La plus simple des interruptions c'est le bouton reset du PC, qui oblige la puce a se réinitialiser immédiatement quelque soit la situation.
Bien sûr, si les interruptions c'est du matériel, il y a forcement une partie logiciel qui va avec. Cette partie c'est la gestion du matériel de bas niveau c'est à dire le noyau de base du système d'exploitation. Dans un PC ce qui gère les interruptions, c'est le BIOS qui est écrit en assembleur du CPU et du chipset. La plupart des périphériques branchés sur un PC, passe par une interruption pour communiquer un changement d'état. C'est le cas du controleur de clavier. Qui appelle matériellement le CPU; lequel déroute son fonctionnement sur la bonne routine du bios. Ensuite c'est le systéme d'exploitation qui intervient pour faire le traitement adapté. La façon dont tu vas utiliser cette information dépend donc de l'OS et de ses API et non pas d'un langage de programmation particulier.  
 
Ensuite, ce concept matériel à donné naissance à un concept de programmation qui lui dépend du langage. C'est la programmation événementielle qui généralise le principe des interruptions. Pour pouvoir faire de la programmation événementielle correcte, il faut 2 conditions : un OS qui le soit, et un langage de prog qui le permette. Windows est d'origine un OS qui offre une API de gestion de messages meme dans un langage comme le C qui ne le permet pas de façon standard, mais faut le bon compilateur et c'est très compliqué. Par contre, si tu utilises un langage objet avec des bibliotheques de classes orientées programmation événementielle, alors tout devient plus simple. Comme c'est le cas avec VB, C# et C++, quand tu programmes sous le framwork .net, ou du java quand tu programmes pour une virtual machine.  
 
Donc la premiere chose à faire, est de choisir ton outil de programmation, car les réponses concretes en dépendent. Quel C ? Quel windows ?


 :jap: merci d'avoir pris le temps de me répondre aussi précisément je pense enfin avoir bien compris le principe des interruptions (il été temps :whistle: )
 
je tourne sur winxp sp2 et j'utilise devc++ avec les bibliothèques suivante :winbgim.h conio.h et les classique stdlib.h stdio.h string.h time.h et math.h ;)


Message édité par the Darck-Shooter le 31-05-2008 à 02:06:16

---------------
ue la vie est amère quand on la boit sans sucre au fond un petit verre.
Votez pour interdire la Borland Graphics Interface (BGI) (et les profs incompétents dans la foulée ça fera pas de mal)
 
Membre de la Team "j'suis en vacances"
n°19301
cmoila
Profil : Membre
Posté le 31-05-2008 à 18:57:53  profilanswer
 

Surtout va pas croire que j'ai tout dit sur les interruptions. C'est juste un aperçu. Je rajoute qu'il ne faut pas confondre les interruptions matériel ou logiciels, avec les exceptions du C++ qui sont des déroutements dans le programme qui ne concernent pas l'OS.
 
Avec ton histoire de kbhit() , je me doutais bien que tu étais toujours dans ton DOS. Ton pb c'est winbgim. J'ai essayer de te schématiser les différentes générations de systèmes info jusqu'à l'architecture que tu as choisis.
 
PROG c'est le programme écrit par un développeur dans le langage le plus complet pour l'époque. En rouge tout ce qu'il doit faire.
 
Les fléches indiquent QUI "appelle" QUOI (QUI --> QUOI)
 
 
1) 1950:   UTILISATEUR --> MATERIEL --> BIOS <-- PROG
     
C'est le début les programmeurs ont les mains dans le cambouis, il n'y a aucune interface.
 
2) 1960:  UTILISATEUR --> MATERIEL --> BIOS <-- OperatingSystem <-- PROG
 
Langage de 3e génération, Fortran, cobol, C, ...Il y a un OS qui offrent des fonctions avancées que le prog peut appeller quand ca lui chante.
 
3) 1981:  UTILISATEUR --> MATERIEL --> BIOS <-- DOS <-- PROG
 
C'est le PC-XT c'est toujours pareil sauf que l'ordi est plus petit et plus puissant (si si). Du coup les programmeurs vont avoir besoin de discuter avec le materiel pour savoir ce qui se passe.
 
4) 1982:  UTILISATEUR --> MATERIEL --> BIOS <-- DOS <-- INTERFACE <==> PROG
 
Pour savoir ce que fait l'utilisateur le programmeur est obligé de créer une interface qui scrute en permanence le OS/BIOS et appelle sur le PROG quand elle détecte un événement matériel (flèche double).
 
5) 1985:  UTILISATEUR --> MATERIEL --> BIOS <-- DOS <-- WIN16 <==> PROG
 
L'interface de communication devient commune en étant intégré dans l'OS et est bien plus puissante car plus générale, mais du coup limite les possibilités. D'ou le pb avec les jeux qui ne peuvent pas se contenter de win16.
 
6) 1995:  UTILISATEUR --> MATERIEL --> BIOS <-- WIN32 <==> PROG
 
Suppression de l'OS antique sans interface et de ses limitations historiques. Et win32 va ensuite contenir directX une interface spéciale pour les jeux. Les programmeurs doivent utiliser win32 sous ses API standards ou dérivées type MFC en C++.  
 
7) 2003:   UTILISATEUR --> MATERIEL --> BIOS <-- WIN32 <==> DOTNET <==> PROG
 
On rajoute une couche de programmation objet événementielle entre l'OS et le programme. On n'utilise plus des appels direct aux API, mais une programmation graphique pour gérer les événements. l'OS apparait comme une boite à outils dans laquelle on puise des composants auquels on donne des propriétés particulières.
 
8) 2007:  UTILISATEUR --> MATERIEL --> BIOS <-- VISTA(DOTNET) <==> PROG
 
Les API standards ne servent plus à rien. On ne programme que par composants.
 
 
Maintenant voila ce que tu veux faire avec WINBGIM :
 
UTILISATEUR --> MATERIEL --> BIOS <-- WIN32 <==> WINBGIM <-- INTERFACE <==> PROG
 
En mettant winbgim tu supprimes ton accès aux messages de win32. Tu dois alors réécrire une interface type années 80 (avec kbhit() en boucle) pour recréer ceux dont tu as besoin, comme les événements clavier. A l'époque où Bill$ met gratuitement à la disposition des particuliers la programmation DOTNET par composants et événements !
 
 
 

n°19311
the Darck-​Shooter
lhomme a l'ortographe parfaite
Profil : Habitué
Posté le 06-06-2008 à 17:47:22  profilanswer
 

merci projet info pouri fini :ddr:
j'ai pu maitre les kbhit() en boucle mais bon sa marche que pour une touche du clavier  :pfff:  
le prog final a rien a voire avec ce que je voulais mais bon  :sarcastic:


Message édité par the Darck-Shooter le 06-06-2008 à 17:49:01

---------------
ue la vie est amère quand on la boit sans sucre au fond un petit verre.
Votez pour interdire la Borland Graphics Interface (BGI) (et les profs incompétents dans la foulée ça fera pas de mal)
 
Membre de la Team "j'suis en vacances"

Aller à :
Ajouter une réponse