Retour à l'accueil JBaumann.info Formulaire de contact

Forum jbaumann.info / envoie des nombres aléatoires au port DB25

Forum jbaumann.info

Bienvenue sur les forums de JBaumann.info. Les réponses sont apportées en moins de 24 heures.

Vous n'êtes pas identifié.

#1 11-12-2008 10:48:06

popossi
Nouveau membre
Date d'inscription: 11-12-2008
Messages: 1

envoie des nombres aléatoires au port DB25

j'ai écri un code en C qui génère 5 nombres aléatoires de 1à 90 que voici je veux envoyer ces nombre sur le port parallèle DB25 et recupérer ca su l'afficheur mais je n'arrive pas s'il vous plaît aider moi c'est urgent
#include <stdio.h>
#include <stdlib.h>
#include <time.h>

unsigned char ecrire_port(val)
{
_outp(val,DATA);
return val;
}
main(){
int i,j,k,l,m;
char buff [BUFSIZ];
srand((unsigned)time(NULL));
i=rand()%(90-1)+1;
j=rand()%(90-1)+1;
k=rand()%(90-1)+1;
l=rand()%(90-1)+1;
m=rand()%(90-1)+1;
sprintf(buff,"%d,%d,%d,%d,%d",i,j,k,l,m);
printf("%s\n",buff);
scanf("%x%x%x%x%x",&i,&j,&k,&l);
_outp (0x378, i,j,k,l);
system("PAUSE");

}n code en C qui génère 5 nombres aléatoires de 1à 90

Hors ligne

#2 11-12-2008 23:08:44

jbaumann
Administrateur
Date d'inscription: 24-10-2008
Messages: 11

Re: envoie des nombres aléatoires au port DB25

Bonjour,

Merci pour votre message.
Tout d'abord, vérifiez la version de votre système d'exploitation. Si vous travaillez sous Windows, cette façon d'envoyer les données vers le port DB25 ne peut plus être utilisée avec les versions NT, 2000, XP et Vista. La raison est simplement que la sécurité de ses systèmes a été considérablement renforcée, et l'écriture vers un port doit se faire par l'intermédiaire d'un pilote qui doit être écrit préalablement.

L'autre problème, c'est que votre programme ne compile pas. L'erreur la plus évidente est que vous n'avez pas inclus le fichier 'conio.h' qui est indispensable à l'utilisation de l'instruction _outp. Par conséquent, l'absence de la ligne "#include<conio.h>" fait que vous ne pouvez de toute façon rien envoyer au port DB25.

Vous avez également défini une fonction qui n'est pas utilisée dans la fonction principale. La variable 'val' n'est pas définie. Pour ces raisons, votre compilateur devrait faire apparaître des massages d'erreurs et des Warnings. Cette fonction "ecrire_port" n'est donc jamais exécutée.

En résumé, vous devriez revoir entièrement le programme. Je vous copie ici un code (dans un message séparé) qui écrit vers le port parallèle, disponible sur notre page traitant de ce sujet. Vous aurez ainsi un programme fonctionnel et contrôler si votre système permet d'écrire sur ce port et s'il se passe quelque chose. Vous pourrez ensuite le modifier, pour y incorporer vos données numériques aléatoires.

Je vous conseille également de prendre le temps de travailler votre programmation. A cet effet, un cours est disponible à cette adresse: www.jbaumann.info/articles/c.html.

Cordialement,

J.Baumann
www.jbaumann.info

Hors ligne

#3 11-12-2008 23:09:30

jbaumann
Administrateur
Date d'inscription: 24-10-2008
Messages: 11

Re: envoie des nombres aléatoires au port DB25

Et voilà le code...

#include  <conio.h> // Fichier d'en-tête pour l'instruction "_outp"
#include <stdio.h> // Fichier d'en-tête pour E/S standards
#include <time.h> // Fichier d'en-tête pour les instruction "clock_t" et "endwait"

   void wait ( int seconds ) //Fonction "Wait" (attente)

{

clock_t endwait;

endwait = clock () + seconds * 1 ;

while (clock () < endwait) { }

}



int main ( ) // Fonction principale

{

int i; // Variable de boucle

               int valeur; // Variable saisie au clavier



printf("Entrez une valeur limite: ");

               scanf ("%d", &valeur) ;  // Saisie de la variable "valeur"





                // Mise à 0 du compteur

               _outp (0x378, 00) ;

               _outp (0x378, 00) ;





                / / Comptage

for (i=0; i<valeur+1; i++)

{

_outp (0x378, 00);

_outp (0x378, 01);

    wait (1000); // Appel de fonction

}



return 0;

}

Hors ligne

Pied de page des forums

Propulsé par FluxBB
Traduction par FluxBB.fr
Modifié par J.Baumann (jbaumann.info)