Accueil > Forum > > > > port joystick
port joystick
mardi 10 janvier 2006 à 22:12:58 |
port joystick

leon1
|
Bonsoir. Bonne année à tous. J' avais écris il y à une dizaine d'années (j'ai repris mes études et fait un dut à 35 ans) ce petit prog qui lisait et enregistrai les voies du port joystick (lecture et enregistrement de données pour un radiotelescope). Comme vous voyez, il est en C. Evidement, cela ne fonctionne pas sous Xp.... J'arrive pas à comprendre pourquoi... Je me suis récupéré VC++6 il y a un mois, et je m'y suis mis. Je dois vieillir, pas moyen d'en faire quelquechose. Quelqu'un peu faire quelquechose pour moi, pour une voie, par exemple, je me débrouillerai pour le reste. Merci, d'avance, et j'ai des chocolats en rab !!! Leon. leon.ternoy@laposte.net #include <conio.h> #include <stdio.h> #include <dos.h> #include <time.h> #include <iostream.h> #include <process.h>
int main() {/* DEBUT DU PROG PRINCIPAL **************************************************************/ /* Declaration des Fonctions et Procedures */ int PasteInFile(int Val1,int Val2,FILE *stream); long FreeOnDisk(int ValDisk);
/* Declaration des variables */ int Compt=0,Carac=0,Js1x=0,Js1y=0,Js2x=0,Js2y=0,i; int CanalEnreg=2,PrecedCanalEnreg=2; FILE *stream; /* declaration du fichier d'enregistrement des valeur mesurees */ struct date d;struct dostime_t t; /* structure pour l'heure et la date */ time_t tps=0,LastTime=0,LastRafraich= time(NULL); int TabBinValPort[8],Date;
// DEBUT DU PROGRAMME char CheminDisk[40]="c:\\joysdata.txt"; /* chemin d'enregistrement par defaut */ float Intervalle=1; /* valeur defaut */ stream = fopen(CheminDisk, "w+"); /* ouvre le fichier CheminDisk a mettre a jour*/ clrscr();
while(Carac!=113) /*touche q pour quitter*/ {Compt=Compt+1; gotoxy(4,1);printf("Prog d'enregistrement des donnees du port Joystick"); gotoxy(1,3);printf("tour=%d\n", Compt); Carac=0; /* reinitialisation du clavier */ if (kbhit()) Carac = getch();
if (Carac==112) /* touche p (faire une pause) */ {Carac=0; while(Carac!=112) /* tant que la touche p n'est pas entree */ {if (kbhit()) Carac = getch(); gotoxy(15, 3); printf("Pause"); } gotoxy(15, 3);printf(" ");} /*clrscr();*/ union REGS regs; regs.h.ah = 0x84; regs.x.dx = 1; int86(0x15,®s,®s); Js1x=regs.x.ax; Js1y=regs.x.bx; Js2x=regs.x.cx; Js2y=regs.x.dx; gotoxy(2, 4);printf("Valeur lue en J 1x (canal 1)= %d \n",Js1x); gotoxy(2, 5);printf("Valeur lue en J 1y (canal 1)= %d \n",Js1y); gotoxy(2, 6);printf("Valeur lue en J 2x (canal 2)= %d \n",Js2x); gotoxy(2, 7);printf("Valeur lue en J 2y (canal 2)= %d \n",Js2y); gotoxy(4, 8);printf("Valeurs du canal %d enregistrees \n",CanalEnreg);
if (Carac==102) /* touche f=fichier */ {gotoxy(1,10); printf("Nouveau chemin d'enregistrement (de la forme [Lecteur]:[Rép][SsRép][Fichier]):\a"); fscanf(stdin, "%s", &CheminDisk);stream = fopen(CheminDisk, "w+");} else{gotoxy(1,10);printf("Chemin d'enregistrement= %s ",CheminDisk);}
if (Carac==99) /* touche c=canal */ {if (PrecedCanalEnreg==2) {PrecedCanalEnreg=1;CanalEnreg=1;} else{PrecedCanalEnreg=2;CanalEnreg=2;} }
if (Carac==105) /* touche i=Intervalle */ {gotoxy(1, 11);printf("Nouvel interval des enregistrements(en secondes):\a"); fscanf(stdin, "%f", &Intervalle);Carac=0;} else{gotoxy(1,11);printf("Interval des enregistrements(en sec)= %f ",Intervalle);}
tps = time(NULL);
if(tps>LastRafraich+10){LastRafraich=tps;clrscr();}
// ENREGISTREMENT if (CanalEnreg==1) {if (tps>=LastTime+Intervalle) {PasteInFile(Js1x,Js1y,stream); LastTime=time(NULL); gotoxy(22,3);printf("ENREGISTREMENT au tour=%d", Compt); } } if (CanalEnreg==2) {if (tps>=LastTime+Intervalle) {PasteInFile(Js2x,Js2y,stream); LastTime=time(NULL); gotoxy(22,3);printf("ENREGISTREMENT au tour=%d", Compt); } } // Fin Enreg gotoxy(1,12);printf("Le disque actif offre %ld octets libres ", FreeOnDisk(3));
gotoxy(2, 14);printf("c = pour changer le Canal d'enregistrement."); gotoxy(2, 15);printf("i = pour changer l'Intervalle d'enregistrement."); gotoxy(2, 16);printf("f = pour changer le Fichier d'enregistrement."); gotoxy(2, 17);printf("p = pour faire une Pause ou recommencer."); gotoxy(2, 18);printf("q = pour Quitter le programme.");
}//FIN WHILE }// FIN PROG PRINCIPAL ***********************************************************************
/*********Fonction de calcul d'espace libre sur le disque c:**************/ /*Retourne la valeur de l'espace libre du disque c:*/ long FreeOnDisk(int ValDisk) {struct diskfree_t free; long avail; if (_dos_getdiskfree(0, &free) != 0) { printf("Disque dur plein()\n"); exit(1);} avail = (long) free.avail_clusters * (long) free.bytes_per_sector * (long) free.sectors_per_cluster; return (avail); }/*fin fonction FreeOnDisk*/
/*******************Fonction de copie de donnees vers fichier*************/ /*Cette fonction copie des valeurs dans un fichier compatible Access en precisant le moment de l'action copier*/ int PasteInFile(int Val1,int Val2,FILE *stream) { struct date d; struct dostime_t t; getdate(&d); _dos_gettime(&t); fprintf(stream, "\n%d/%d/%d; %2dh%02d:%02d:%02d; %d;%d;", d.da_day,d.da_mon,d.da_year,t.hour, t.minute,t.second,t.hsecond,Val1,Val2); /*écrit des données dans le fichier*/ return 0; }/*fin fonction PasteInFile*/
|
|
mercredi 11 janvier 2006 à 01:16:07 |
Re : port joystick
|
mercredi 11 janvier 2006 à 18:13:04 |
Re : port joystick

leon1
|
Bonsoir à tous. Merci BruNews, de ta réponse. C'est toujours sympas de recevoir une réponse encourageante, de voir que le respect des anciens est toujours là !!!!!! Je vais me lancer dans l'étude de tes docs, et puis on verra. Si j'ai une veine qui pète dans le cerveau, on connaitra lez coupable !!! Bon, je repart en formation. Cordialement. Léon.
|
|
Cette discussion est classée dans : enregistrement, int, printf, gotoxy, carac
Répondre à ce message
Sujets en rapport avec ce message
demande de correction de programme [ par gemini010 ]
slt a tous, je dois créer un programme avec differente fonctions et structures permettant de gerer des etudiants ( on doit pouvoir ajouter des enregis
Langage C : Puissance 4 [ par breakeur59150 ]
Bonjour à tous,j'ai une ou deux question à vous poser, je suis en train de faire le jeu puissance 4 en langage c sous borland C, C'est un projet que l
aide [ par achrafgassolina ]
salut tout le monde la j ai une érreure et je c pas comment la resoudre dans la ligne 296:36 dans la condition if et aprés je veux faire la saisie des
Programme Tri à Bulle [ par tivanbelle ]
Bonjour,J'ai fait ce programme en cours, c'est un tri a bullequi tri des valeur donc 2à2, mais le programme ne fonctionne pas. Pouvez vous me dire ce
Puissance 4 en C [ par drinky05 ]
Bonjour, j'aurai besoin d'aide pour mon programme, grand débutant, c'est pour un projet en cours, je dois réaliser un puissance 4, il fonctionne a peu
conflit de type dans un tableau [ par pausecpp ]
j'ai eu une réponse inattendue. voici un partie du code (l'essentiel ;) ):...#define N 5....float V[N]={0}; int i;for(i=0; i{printf("\nEntrer la coord
Problème retour tableau fonction [ par acidjackproject ]
Bnjour, voilà j'explique mon probleme:J'ai une fonction recherche qui parcours un index (tableau de structure). Lorsqu'elle a trouvé l'élément elle me
probleme affichage structure [ par lil_adriano ]
Slt tous le monde j'ai un souci avec l'affichage de mes structures. je dois faire la gestion d'une pizzeria.j'ai cree les structure et quelques proced
Suite de Fibonacci [ par BastienL21 ]
Bonjour à tous, débutant en C, j'ai écris un code permettant d'éxecuter la suite de Fibonacci en additionnant les deux nombres précédant, stockés dans
Equation du 3éme degrée [ par jeanphilippe37 ]
Slt, je t'envoie le programme de maths, ms j'ai essayé de mettre un system(pause) ms cela me fou une erreur de compilation. Pourré-tu me dire
Livres en rapport
|
Derniers Blogs
POUR RAPPEL ! LES SPéCIFICATIONS DES PROTOCOLES OFFICE ET SHAREPOINT SONT DISPONIBLES SUR MSDNPOUR RAPPEL ! LES SPéCIFICATIONS DES PROTOCOLES OFFICE ET SHAREPOINT SONT DISPONIBLES SUR MSDN par neodante
Quelle est le point commun entre : Microsoft il y a 10 ans et Apple aujourd'hui ? Réponse: avoir une politique de protocoles propriétaires et fermés :) Car pour rappel (si si je vous assure c'est important de le rappeler), la majorité des spécifications e...
Cliquez pour lire la suite de l'article par neodante JOYEUX ANNIVERSAIRE NIXJOYEUX ANNIVERSAIRE NIX par ebartsoft
Souhaitons un bon et joyeux anniversaire à notre hôte à tous, Nix.
Je ne le répéterais jamais assez mais sans lui rien ne serait possible. Il défit en permanence les lois de la gravité et comme il le dit si bien, si tu lui fais confiance ça devra...
Cliquez pour lire la suite de l'article par ebartsoft IMAGINE CUP 2012, MAKE A SIGN EN FINALEIMAGINE CUP 2012, MAKE A SIGN EN FINALE par junarnoalg
Voilà qui est fait, la nouvelle est officielle ! L'équipe belge "Make a Sign" va au pays des kangourous défendre son projet dans la catégorie Software Design. http://www.imaginecup.com/CompetitionsContent/Competition/WorldwideFinalists.aspx V...
Cliquez pour lire la suite de l'article par junarnoalg KINECT 1.5 IS OUT !KINECT 1.5 IS OUT ! par Vko
La version 1.5 du Kinect For Microsoft vient tout juste de sortir ! Plein de nouveautés: Tracking de squelette en Near Mode Détection en position assise Détection faciale avec un SDK dédié Documentation et des guideline (enfin) Un out...
Cliquez pour lire la suite de l'article par Vko LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) par richardc
Mise à jour des Web API du 14 Mai
Réservez dès maintenant votre journée du 20 juin pour le Windows Azure Dev Camp 2012 à Paris
Mise à jour de Team Foundation Service
MechCommander 2 sur Windows 8
Entity Framework 5 Release Candidate e...
Cliquez pour lire la suite de l'article par richardc
Logiciels
sDEVIS-FACTURES vlPRO (8.1.0.3)SDEVIS-FACTURES VLPRO (8.1.0.3)sDEVIS-FACTURES vlPRO a été mis au point pour les particuliers, créateurs, entrepreneurs, artisa... Cliquez pour télécharger sDEVIS-FACTURES vlPRO 974 Application Server (12.2.4.6)974 APPLICATION SERVER (12.2.4.6)Développez de puissantes applications dans un environnement de 'cloud computing', clusterisé, séc... Cliquez pour télécharger 974 Application Server vPicture (1.4.2.1)VPICTURE (1.4.2.1)Avec vPicture, hébergez vos images facilement et rapidement.
vPicture est un utilitaire simple, ... Cliquez pour télécharger vPicture Easy-Planning (2.2.1.6)EASY-PLANNING (2.2.1.6)Easy-Planning permet de créer des plannings sous la représentation de diagrammes et est adapté au... Cliquez pour télécharger Easy-Planning COM-BACKUP (2.0)COM-BACKUP (2.0)
COM-BACKUP est un logiciel de sauvegarde qui permet de planifier les sauvegardes de vos dossiers ...
Cliquez pour télécharger COM-BACKUP
|