begin process at 2012 02 11 20:35:16
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

Divers

 > 

Utilisation du port // ; mesure temps-résistance


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Utilisation du port // ; mesure temps-résistance

dimanche 7 mai 2006 à 12:07:36 | Utilisation du port // ; mesure temps-résistance

thibzult

Bonjour,

Je dois d'abord vous dire que mes connaissances en programmations sont ... quasi nulles ! J'ai programmé il y a longtemps en GW-Basic puis Q-Basic, j'ai essayé un peu de turbo mais je me suis vite arrêté... par manque de temps !

Ce que j'essais de réaliser depuis longtemps, c'est une petite interface qui me permette, à partir du port parrallèle, de mesurer une résistance. (pour se faire une idée voir là : [ Lien ]
Vous me direz que le port "jeu" fait ça trés bien ... certe mais la mesure n'est pas trés précise puisqu'elle se fait selon 256 niveaux !
Ce que je souhaite donc c'est votre aide pour programmer un petit logiciel qui fonctionnerais sur ce principe :
1) envoyer une impulsion sur une broche donnée du port
1 bis ) en même temps déclencher une base de temps (chrono)
2) scruter une autre broche donnée
3) dès que le seuil est atteint sur cette broche (+5V) arrêter le chrono.

Voilà...
ça semble assez simple... mais je suis helas absolument incapable de le faire !!
Aprés je me sert du temps de charge d'un condensateur que je met entre les deux broche en série avec la résistance à mesurer et j'en déduis facilement la résistance à partir du temps mesurer ... ça c'est de la physique et du calcul de base, c'est facile...
Moi c'est juste le programme que je n'arrive pas à faire ...

Si vous voulez vous faire une idée de ce que j'essai de faire rendez vous là. C'est un programme rédigé en turbo pascal que je n'ai pas réussi à adapter à mon antique Q-Basic... donc je suis dans l'impasse !!!
[ Lien ]

Merci d'avance pour vos réponses !!
A bientôt !
Thibault
mardi 9 mai 2006 à 08:43:02 | Re : Utilisation du port // ; mesure temps-résistance

Alcantornet

Moi j'ai utiliser une dll (inpout.dll) pour rendre les accès au port plus simple

http://www.logix4u.net/InpOutBinaries.zip                        version i386 et x64
http://www.logix4u.net/inpout32_source_and_bins.zip      version que i386

Ensuite dans ton code fais qqch dans le genre:

#include <stdio.h>
#include <conio.h>
#include <windows.h>

/* Definitions in the build of inpout32.dll are:            */
/*   short _stdcall Inp32(short PortAddress);               */
/*   void _stdcall Out32(short PortAddress, short data);    */


/* prototype (function typedef) for DLL function Inp32: */
typedef short _stdcall (*inpfuncPtr)(short portaddr);
typedef void _stdcall (*oupfuncPtr)(short portaddr, short datum);

int main(void)
{
     HINSTANCE hLib;
     inpfuncPtr inp32;
     oupfuncPtr oup32;

     /* Load the library */
     hLib = LoadLibrary("inpout32.dll");

     if (hLib == NULL) {
          printf("LoadLibrary Failed.\n");
          return -1;
     }
    
     /* get the address of the function */
     inp32 = (inpfuncPtr) GetProcAddress(hLib, "Inp32");

     if (inp32 == NULL) {
          printf("GetProcAddress for Inp32 Failed.\n");
          return -1;
     }


     oup32 = (oupfuncPtr) GetProcAddress(hLib, "Out32");

     if (oup32 == NULL) {
          printf("GetProcAddress for Oup32 Failed.\n");
          return -1;
     }


     short x;
     int i;

     /*****  Write the data register */
     i=0x3BC; // Address du port
     x=0x00;

     oup32(i,x);
    
     printf("port write to 0x%X, datum=0x%2X\n" ,i ,x);

     /***** And read back to verify  */
     x = inp32(i);
     printf("port read (%04X)= %04X\n",i,x);


     system("pause");

     // On libère la DLL
     FreeLibrary(hLib);
    
     return 0;
}


Je suis pas sûr que ça fonctionne parcque ce code était pour une version plus ancienne de la DLL, mais ça dois resembler.

Tout ceci c'est pour travailler sous windows, mais si tu tavail sous linux, c'est plus simple. Sous linux tous les ports sont représenté par des fichiers, donc il suffit de lire ou d'écrire sur le fichier /dev/lpt (ou /dev/lpt0).



Cette discussion est classée dans : port, temps, broche, mesure, résistance


Répondre à ce message

Sujets en rapport avec ce message

mesure de temps d'exécution [ par ezneti ] Bonjour tout le monde, Je veux faire la mesure de temps d'exécution d'un programme (de traitement d'image)developpé en C sur un processeur bien determ Rapidité des systèmes temps réel [ par morpheux74 ] Bonjour,Voila je suis en ce moment sur un projet de traitement d'image qui doit fonctionner avec la meilleure performance possible.Je m'explique:J'ai calcule de cycle d'horloge en haute résolution de temps µs [ par ahmeddrira ] scofild salut svp je  ve Port bluetooth [ par thelme ] Bonjour,Depuis un trop grand nombre de mois je tente de trouvé un programme qui puisse envoyer et recevoir des octets via port bluetooth pour pouvoir 2 sources webcam en même temps [ par Wathjer ] Bonjour à tous,Je voudrais savoir s'il existe un logiciel pour faire ceci:voilà je voudrais que dans la webcam qui diffuse je puisse y insérer une sec lecture/écriture port COM utilisé et connecté (modem) [ par mistigwn ] Bonjour,J'aimerai dialoguer avec un modem GSM, et écrire des commandes AT sur son port COM. Tant qu'il est déconnecté, pas de soucis. Par contre, dès tracking vedio en temps réel [ par drissmath ] Bonjour, je suis en train  de programmer un code en c ++, pour extraire la silhouette d'une persone passant devant un camera et projeter cette silhoue chronomètre C++ [ par issamery ] bonsoir,je désire développer un simple chronomètre sous VC++, j'ai créé une application SDI, j'y ai mis 4 bouttons dans la barre d'outils, start, paus Problème de lecture sur port com [ par Grenapeel ] Bonjour,j'aurai besoin d'un peu d'aide car je bloque actuellement sur une erreur probablement idiote mais je ne trouve pas:je lis des informations ven compteur en pause dans une plage de temps [ par kais52 ] Bonjour,Je pêche dans mon programme Wincc. Je souhaite incrémenter un compteur et lui faire une "pause" pendant une plage horaireSauriez vous m'aiguil


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 2,044 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales