J'ai enfin trouvé un site qui montre un code C assez interressant pour linux, je l'ai fait marché.
Après l'avoir adapté à mes besoins et ma méthode de prog (je centralise souvent tout donc je crée souvent une fonction pour la moindre chose)
Pour ceux que ca interresse, la fonction act_broches contient 8 paramètres :
Ils correspondent à chacunes des broches dans l'ordre (2 à 9).
1 signifie active et 0 inactive. Donc pour par éxemple activer la broche 3 et 6, il faut faire ceci :
Cette fonction renvoie par ailleurs le décimal envoyé au port.Code:act_broches(0,1,0,0,1,0,0,0);
Voici donc le programe complet :
Voici le retour console quand on le lance :Code:// A l'aide du site www.aqra.ca #include <stdio.h> #include <sys/io.h> #include <unistd.h> #include <stdlib.h> #include <math.h> #define REG_ADRESSE 0x378 // Fonction définissant les broches int act_broches(int a, int b, int c, int d, int e, int f, int g, int h) { // On défini la variable int nbrfinal = 0; if(a==1) nbrfinal+= 1; if(b==1) nbrfinal+= 2; if(c==1) nbrfinal+= 4; if(d==1) nbrfinal+= 8; if(e==1) nbrfinal+= 16; if(f==1) nbrfinal+= 32; if(g==1) nbrfinal+= 64; if(h==1) nbrfinal+= 128; // On entre le nombre final dans le port outb(nbrfinal, REG_ADRESSE); return nbrfinal; } int main(int argc, char *argv[]) { // On regarde si on a le droit d'ouvrir l'interface if(ioperm(REG_ADRESSE, 2, 1)) { // On ne peut pas => erreur perror("Impossible d'ouvrir le port !"); exit(1); // Sortie avec code 1 } // On défini nos broches int decimal = act_broches(0,0,1,1,1,1,0,0); printf("Seules les broches de 4 a 7 ont ete activees ! (decimal %d)\n", decimal); // On regarde si on peut fermer le port if(ioperm(REG_ADRESSE, 2, 0)) { // On ne peut pas => erreur perror("Impossible de fermer le port !"); exit(1); // Sortie avec code 1 } // Tout est OK, on peut sortir du programme en indiquant un succès return 0; }
Il faudrais que je me procure un visionneur d'état (je ne sait pas si le montage est disponible à la vente ou s'il faut absolument le fabriquer soi-même...)Code:[root@localhost Port parallele 1]# ./executable Seules les broches de 4 a 7 ont ete activees ! (decimal 60)
Pour ce qui est du TTL, c'est assez compliqué :S J'ai pas tout compris, mais au vu de ce que j'ai en projet, ceci ne devrais pas poser normalement de problème si je me limite aux optocoupleurs.


