[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/