Pi-WiringPi-Reference-Setup-Functions
Initialisation
There are four ways to initialise wiringPi.
- int wiringPiSetup (void) ;
- int wiringPiSetupGpio (void) ;
- int wiringPiSetupPhys (void) ;
- int wiringPiSetupSys (void) ;
Une des fonctions setup doit être appelée au démarrage de votre programme sinon votre programme ne fonctionnera pas correctement.
Les symptômes que vous découvririez irait du "non fonctionnement" à l'erreur de segmentation (segfaults) en passant pas les erreurs de temps.
Note
La version 1 de wiringPi retournait un code d'erreur si l'une de ces fonctions échouait pour une raison quelconque.
la version Version 2 retourne toujours zéro. Après de nombreuses discussions et inspections de programme écrit par des utilisateurs de wiringPi, il apparait que peut d'utilisateur soient concerné par ce code de retour, Gordon en est arrivé au point de considérer que si une fonction setup de wiringPi échoue, cela serait alors considéré comme une erreur fatale du programme et que l'exécution du programme se termine à ce point avec l'affichage d'un message d'erreur sur le terminal.
- Si vous voulez restaurer le fonctionnement propre à de la version 1, alors vous devrez initialiser la variable d'environnement: WIRINGPI_CODES (à n'importe quelle valeur, la variable doit juste exister)
Les fonctions d'initialisation
Voici les différentes méthodes d'initialisation disponibles.
wiringPiSetup
wiringPiSetup(void);
Initialise wiringPi et par du principe que le programme appelant va utilisé le principe de numérotation wiringPi. C'est un schéma de numérotation simplifié qui fournit une correspondance ("mapping" en anglais) de broches virtuelle allant de 0 à 16 vers les vrais numéros de broches du GPIO Broadcom.
Voyez la page dédicacée aux numéros de broche pour une table de correspondance entre la numérotation wiringPi et la numération des broches du GPIO Broadcom GPIO et leur localisation physique sur le connecteur GPIO du pi.
Cette fonction à besoin d'être appelée avec le privilège root (administrateur).
wiringPiSetupGpio
wiringPiSetupGpio(void);
Fonction identique à la précédente, mais permet au programme appelant d'utiliser la numérotation des broches du GPIO Broadcom directement... et donc sans re-mapping.
Comme la précédente, cette fonction doit être appelée avec le privilège root (administrateur). Faite attention car certaines broches du connecteur GPIO sont différentes entre la révision 1 et la révision 2 des cartes.
wiringPiSetupPhys
wiringPiSetupPhys(void);
Fonction identique à la précédente. Mais permet au programme appelant d'utiliser les numéros de broche physique sur le connecteur P1 seulement.
Comme pour les autres, cette fonction soit être appelée avec les privilèges root.
wiringPiSetupSys
wiringPiSetupSys(void);
Initialise également wiringPi mais utilise l'interface /sys/class/gpio plutôt que de faire des accès matériels direct. Peut-être appelé avec un privilège utilisateur non-root ayant exporté les broches du GPIO au préalable avec les programme gpio.
La numérotation des broches dans ce mode sont les numéros natif du GPIO Broadcom – le même que wiringPiSetupGpio() ci-dessus. Soyez donc attentif à la différence entre les carte de révision 1 et révision 2.
Note:
Dans ce mode, vous pouvez seulement utiliser les broches qui ont été exportées via l'interface /sys/class/gpio avant d'exécuter votre programme. Vous pouvez effectuer cette opération à l'aide d'un script shell séparé, ou en utilisant la fonction system() à l'intérieur de votre programme qui appelle le logiciel gpio.
Notez également que certaines fonction n'ont aucun effet en utilisant ce mode puisqu'il ne leur est pas possible d'agir à moins d'être appelée avec le privilège root (administrateur). (
Vous pouvez néanmoins utiliser system() pour faire un appel gpio afin de changer/initialiser les modes (si cela est nécessaire)
Source: WiringPi.com. WiringPi est une libraire sous licence GPL écrite par Gordon Henderson. Crédit: wiringpi.com
Traduit de l'anglais par Meurisse D. pour MCHobby.be
Traduit avec l'accord de Gordon Henderson, créateur de wiringPi - Translated with authorization of Gordon Henderson, creator of wiringPi
Toute référence, mention ou extrait de cette traduction doit être explicitement accompagné du texte suivant : « Traduction par MCHobby (www.MCHobby.be) - Vente de kit et composants » avec un lien vers la source (donc cette page) et ce quelque soit le média utilisé.
L'utilisation commercial de la traduction (texte) et/ou réalisation, même partielle, pourrait être soumis à redevance. Dans tous les cas de figures, vous devez également obtenir l'accord du(des) détenteur initial des droits. Celui de MC Hobby s'arrêtant au travail de traduction proprement dit.