[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [gulliver] progammation sur port parallele


From Bertrand Louargant <bertrand dot louargant at ifrance dot com>
Subject Re: [gulliver] progammation sur port parallele
Date Sat, 6 May 2006 10:07:05 +0200

Tu peut faire un driver pour piloter ton port série et ensuite écrire un 
programme qui utilise ce driver.
Voici un article qui survole la chose: 
http://www.freesoftwaremagazine.com/articles/drivers_linux

Le Samedi 6 Mai 2006 00:31, chris a écrit :
> Bonjour
>
> Je suis en train de m'amuser avec mon port parallèle, mais les divers
> programme que je trouve sur le net nécessite d'être root pour être exécuté.
> Voici le code source que j'utilise :
>
> #include <stdio.h>
> #include <sys/io.h>
> #include <asm/io.h>
> #include <unistd.h>
> //Puis nous définissons BASEPORT avec l'adresse du port à utiliser :
> #define BASEPORT 0x378
> //Ensuite nous pouvons commencer notre programme :
> int main(void)
> {
> unsigned int i=0; // compteur pour l'accès aux relais
> unsigned int r=1; //compteur pour le numéro du relais
>    //Cette ligne permet de demander un accès au port
>    //si l'accès est refusé le programme se termine avec une erreur
> if(ioperm(BASEPORT,3,1)){perror("ioperm");exit(1);}
>    //Comme il n'y a pas eu d'erreur, nous pouvons entrer dans une
>    //boucle qui activera puis désactivera les huit relais les uns
>    //après les autres
> while(r<9)
> {
> usleep(30000); //attendre
> outb(i,BASEPORT); //on envoie la valeur de i sur 0x378
> printf("Relais %d : ON\n", r); //on affiche que le relais n° r est allumé
> usleep(30000); //attendre
> outb(0,BASEPORT); //on envoie 0 sur 0x378
> printf("Relais %d : OFF\n", r); //on affiche que le relais n° r est éteint
> i=i*2; //on double la valeur de i pour accéder au prochain relais
> r++; //on incrémente le numéro du relais
> i++;
> }
> return(0);
> }
>
> Pour l'instant, c'est un programme de base, mais je cherche à écrire en
> mode user sur ce port parallèle, ce que ne permet pas les fonction ioperm
> ou outb.
>
> Qui peut me fournir des pistes pour résoudre ce problème, mes recherches
> sur google, sont pour l'instant négative.
>
> Merci pour toute aide
>
> Christophe JOSSELIN
>
>
> ---- Liste gulliver ----
> Se d�sinscrire, mailto:gulliver-unsubscribe at listes dot gulliver dot eu dot org
> GULLIVER,       http://gulliver.eu.org/