cs_Chacks
Messages postés1Date d'inscriptionsamedi 26 juillet 2003StatutMembreDernière intervention12 août 2003
-
12 août 2003 à 10:12
yvemoreau
Messages postés308Date d'inscriptionmardi 11 juin 2002StatutMembreDernière intervention26 septembre 2008
-
16 août 2003 à 03:32
Bonjour, je cherche quelqu'un qui connaisse la programmation des ports d'entrées/sorties d'un PC pour avoir plusieurs renseignements.
Je veux faire l'acquisition de données (sur 8 bits) toutes les 1µs soit 1 million de fois/seconde. Je n'ai pas besoin que ça fasse un graphique, je veux juste que ça mette les données dans un fichier texte. Cette vitesse d'acquisition est-elle possible sous delphi? Si oui, en utlisant quel ports?
cs_Cyrille2
Messages postés113Date d'inscriptionvendredi 16 août 2002StatutMembreDernière intervention15 mai 2005 12 août 2003 à 14:43
Slt,
ca me semble difficile mais pas inconcevable, (bonjour l'utilisation du proc ...)
T = 1µs <=> F = 10^6Hz
prenons un proc d'1 GHz => F > 10^9Hz mais il faut compter que le processeur, pr lire les informations effectue plusieurs instructions (bam, on divise par autant d'instructions), qu'il ne traite pas QUE ton programme (bam, encore réduire), bref, essaie mais ca va ramer a mon avis... si encore t'arrive a cette fréquence...
ds tt les cas, je serai d'avis de voir l'asm pr ca... mais je suis pas expert, si ca se trouve je viens de poster ma plus grosse connerie :)
Examples:
// get data bits from LPT
databits := portreadb( $378 );
// set data bits from LPT
portwriteb( $378, databits )
//effacer les états des pins ou les remettres à zéro
zlportio.portwriteb($378,0);
zlportio.portwriteb($378+1,0);
tu pourra lire l'état d'une pin en entrée sur le port .(voir image)
Alors si tu met l'application en priorité( temps reel ),tu ne fera que ça lire l'état du port (la fréquence dépendra du processeur pour ralentir mettre une boucle vide for x:=1 to 1000 do for y:=1 to 10000 do ;) faudras déterminer quand ça arrêtera pour faire les autres tâches !!!
genre ...
procedure X;
var
val:Byte;
begin
zlportio.portwriteb($378+1,0);// efface
val:=zlportio.portreadb($378+1); // lis
Write(fichier?,val)...