Bonjour,
j'ai realisé un montage tres simple avec en gros une LED sur chacune des 8 sorties controlables du port parallele et reliées a la masse du port.
Mon but est de faire s'allumer les diodes connectées selon l'octet que j'envoi sur le port // (chacune correspondant a un bit).
j'ai essayé ca : "echo + > /dev/lp0" histoire d'envoyer l'octet correspondant au code ascii du caractere '+'.
Malheureusement, une fois la commande validée, ca attends, comme si rien ne se passait. j'arrive a recuperer le prompt avec Ctrl+C seulement. C bloqué.
De meme avec un prog en C qui essaye d'ecrire dans /dev/lp0.
une idée ? :)
Petite precision, mon port // est configuré en spp + epp, ca peut changer quelque chose ?
sinon, avec un prog windows j'arrive a faire ce que je veux mais le but final est faire ca sous linux. Est-il possible que ca vienne du fait que Windows ecrit direct dans les registres d'ecriture et que linux fait autrement ?
merci
# J'ai un exemple
Posté par Pinaraf . Évalué à 1.
Le prog est dispo sur http://pinaraf.robertlan.eu.org/traceur.c(...)
[^] # Re: J'ai un exemple
Posté par Pinaraf . Évalué à 1.
j'avais codé ce programme pour les TPE, il s'agissait de contrôler un traceur branché sur le port parallèle.
La fonction qui envoie les données est
void alterne (int up, int down, int periode, int times)
en gros, elle se charge d'envoyer times fois avec un intervalle de periode micro secondes alternativement le signal up puis le signal down sur les huit broches (=> up et down entiers < 255)
J'utilise la libieee1284 qui m'a permis de me débarasser de tous les problèmes que j'avais en essayant de faire ça avec la façon que tu décris.
# code C
Posté par benja . Évalué à 2.
ioperm(0x378, 3, 1);
ensuite il suffit d'envoyer ton octet avec outb. remarque: outb nécessite que tu compile ton prog avec -O ou -O2.
outb(octet, 0x378);
et quand tu as fini, tu libère le bouzin
ioperm(0x378, 3, 0);
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.