Envoyer des signaux sur un por série ou parallele

Envoyer des signaux sur un por série ou parallele - C++ - Programmation

Marsh Posté le 06-04-2004 à 20:12:42    

Bonjour, voila en fait je voudrait arriver mettre certain port du port série ou parralele a un 1 logique en C++ avec borland , si quelqu'un peut me dire comment faire, et quelle librairie inclure, je vous en remercie d'avance.
 
Je suis désolé si le sujet a deja été évoqué mais la fonction rechercher n'est plus active.. :(

Reply

Marsh Posté le 06-04-2004 à 20:12:42   

Reply

Marsh Posté le 06-04-2004 à 21:51:16    

outportb, je crois
 
void outportb(adresse, char)
char inportb(adresse)

Reply

Marsh Posté le 06-04-2004 à 22:53:27    

ok je V tester ca merci beaucoup ;))

Reply

Marsh Posté le 07-04-2004 à 22:25:20    

heu elle son dans quelle librairie? et l'adresse je met koi?? un truc contenu dans la plage d'entrée sortie??

Reply

Marsh Posté le 07-04-2004 à 22:45:16    

y'a pas moyen d'ouvrir un port avec open et d'écrire dessus???

Reply

Marsh Posté le 07-04-2004 à 22:54:17    

Ce récent topic pourrait t'intéresser : http://forum.hardware.fr/hardwaref [...] 8733-1.htm

Reply

Marsh Posté le 08-04-2004 à 18:20:52    

merci beaucoup printf

Reply

Marsh Posté le 08-04-2004 à 19:28:52    

Sous système NT ca se complique légèrement... si qq1 à une librairie C ou C++ pour lire/ecrire sur le port parallèle je suis extremement interessé !
 
Cordialement,
 xter.

Reply

Marsh Posté le 08-04-2004 à 19:29:25    

Guiz -> "conio.h"

Reply

Marsh Posté le 08-04-2004 à 22:41:20    

mouai en fait  je doit etre un gros boulet.. :( j'ai essayer avec la class récupérée dans l'otre topic mais j'y arrive pas, vu que j'utilise borland, je trouve pas les bonnes librairies (afx*.h)
 
et dans conio.h y'a quoi comme fonction qui peut me servir?? xter?

Reply

Marsh Posté le 08-04-2004 à 22:41:20   

Reply

Marsh Posté le 08-04-2004 à 23:25:55    

outp(int,int) ou _outp
int inp() ou _inp()
 
il me semble.

Reply

Marsh Posté le 10-04-2004 à 14:35:06    

outp et companie ne marchent pas sous NT donc fais attention.
pour communiquer avec un port on fait comme si on creait un fichier en utilisant CreateFile (je n'ai plus la specif en tete) avec comme nom de fichier "COM1" pour un port COM1 et "LPT" pour le port parallele il me semble. pour l'ecriture et la lecture ya WriteFile() et ReadFile() (pareil j'ai plus les specifs en tete :p)
sous Borland j'utilisais la vcl (vcl.h donc) pour ca
 
apres pour tes histoires de 1 logiques j'ai pas trop compris et je sais pas trop si on peut proceder de cette facon, mais ca peut etre une piste de recherche...

Reply

Marsh Posté le 10-04-2004 à 15:33:51    

Génial, est-il vraiment obligatoire de passer par une MFC pour acceder au port parallèle... je trouve ca nul.
 
Xter.

Reply

Marsh Posté le 10-04-2004 à 18:06:38    

nan t'es pas obligé, tu peux trouver des composants pour builder sur le net qui te permettent ce genre de chose
mais bon j'y connais pas grand chose donc je peux pas te filer d'exemple...

Reply

Marsh Posté le 10-04-2004 à 23:06:24    

ben en fait ce que je veut faire c'est  pour commander un contacteur, envoyer une tension sur une broche du port série ou paralelle, et pouvoir commander mon truc.
 
par exemple pour taper A il faut ke j'appuie 5 fois sur un bouton ben je veut remplacer ca par un contacteur que j'alimente 5 fois de suite, en gerant ca par un prog...
 
je c pas si tu comprend plus.. :s et je c pas non plus si c possible,
 
sinon j'ai trouver des code qui permettent d'envoyer et recevoir des données sur un com mais je c pas sur kel broche ca va, et faut que j'en commande 4 différentes!
 
bref.. un truc de fou c'ke j've faire j'ai l'impression... je pensait que c t plus simple :s

Reply

Marsh Posté le 10-04-2004 à 23:16:06    

Guizmotroy a écrit :

ben en fait ce que je veut faire c'est  pour commander un contacteur, envoyer une tension sur une broche du port série ou paralelle, et pouvoir commander mon truc.
 
par exemple pour taper A il faut ke j'appuie 5 fois sur un bouton ben je veut remplacer ca par un contacteur que j'alimente 5 fois de suite, en gerant ca par un prog...
 
je c pas si tu comprend plus.. :s et je c pas non plus si c possible,
 
sinon j'ai trouver des code qui permettent d'envoyer et recevoir des données sur un com mais je c pas sur kel broche ca va, et faut que j'en commande 4 différentes!
 
bref.. un truc de fou c'ke j've faire j'ai l'impression... je pensait que c t plus simple :s


 
Un port série est vu à travers un UART, donc manipuler l'état des broches du port série est une méthode vraiment très très crade (que je te déconseille fortement).
Je te conseille plutôt de t'intéresser au port parallèle (qui est également plus simple à mettre en oeuvre).
Je vais essayer de te trouver la fonction kivabien (suite au prochain épisode).

Reply

Marsh Posté le 10-04-2004 à 23:48:54    

Tu devrais trouver ton bonheur dans la section "port parallèle" de MSDN : http://msdn.microsoft.com/library/ [...] d_4oqa.asp
 
En particulier ici : http://msdn.microsoft.com/library/ [...] d_316a.asp
 
C'est très clair (et pourtant je n'ai jamais programmé sous Windows de ma vie...). J'oserai même dire que c'est aussi clair qu'une manpage, en plus détaillé :D
 
Par contre le Windows DDK semble être limité aux Windows récents : Me, 2000, XP, etc.
Si t'es sous 95/98 je ne sais pas du tout :/
 
Et pour utiliser le DDK (pour avoir les headers, etc.) il faut l'installer, et ça a l'air d'être un gros machin.


Message édité par printf le 10-04-2004 à 23:53:15
Reply

Marsh Posté le 11-04-2004 à 09:39:01    

y a au moins 2 DDK je crois, un pour 98/ME, l'autre pour 2000/XP
Mais ça c'est pour écrire de drivers WDM principalement, je ne pense pas que tu en ai besoin car les drivers des ports COM/Parallele existent déjà ;)


Message édité par cricri_ le 11-04-2004 à 09:40:36
Reply

Marsh Posté le 11-04-2004 à 11:50:07    

Sous linux, l'accès se fait pas outp et inp normalement ?

Reply

Marsh Posté le 12-04-2004 à 21:35:56    

Si tu veux ecrire sur differentes broches du port com, ca vas pas etre facile car comme ca a deja ete dit, ca passe a travers l'uart et de plus, techniquement la seule broche que tu pilotes c'est TX (eventuellement CTX aussi)
Avec le port parallele, tu auras le controle sur plus de broche. A savoir tout de meme que tu n'as jamais un controle total sur ces ports, par ex tu ne peux pas juste ecrire 1 bit dessus (donc mettre la broche a 1) il faut ruser un peu vu que tu ecrit des mots (8 bits mini).
A toi de trouver les bonnes valeurs a ecrires pour piloter les bonnes broches.
Enfin, de memoire les fct CreateFile et autre ne font pas partie des MFC, ce sont des fonctions systeme exportes par le kernel windows et elles sont tres utilises pour la conception de driver. Les fonctions de la libc open et cie y font appel.

Reply

Marsh Posté le 13-04-2004 à 19:16:24    

Ect-ce que qq1 peut m'expliquer comment piloter le port parralèle sous linux ? Les fonctions outb et inb marche-t-elle vraiment...etc.
 
Merci,
  xter.


---------------
Cordialement, Xterm-in'Hate...
Reply

Marsh Posté le 13-04-2004 à 21:19:25    

Il me semble qu'il te suffit d'ouvrir le bon device dans /dev et apres tu peux le piloter comme n'importe quel stream, ioctl/read/write...
Mais il se peut que je sois a cote de la plaque :)

Reply

Marsh Posté le 14-04-2004 à 19:32:07    

Sous Linux, ca tourne tres simplement! J'utilise la libriarie PARAPIN dont l'interface en C me semble bien sympathique. Il ne faut pas oublié de compiler et linker le code en mode optimisé.
 
Cela dit, mon principal probleme tournait autour de la configuration du BIOS de ma machine : disabled dans mon cas par défaut.... hum! Des heures d'acharnement de perdues à cause de ca ! :)
 
Cordialement,
   XteR.


---------------
Cordialement, Xterm-in'Hate...
Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed