Pi-WiringPi-Reference-TimeManagament

De MCHobby - Wiki
Révision datée du 12 octobre 2013 à 19:09 par Admin (discussion | contributions) (→‎Fonctions)
(diff) ← Version précédente | Voir la version actuelle (diff) | Version suivante → (diff)
Sauter à la navigation Sauter à la recherche


MCHobby investit du temps et de l'argent dans la réalisation de traduction et/ou documentation. C'est un travail long et fastidieux réalisé dans l'esprit Open-Source... donc gratuit et librement accessible.
SI vous aimez nos traductions et documentations ALORS aidez nous à en produire plus en achetant vos produits chez MCHobby.

Gestion du temps

Si Linux offre une pléthore de fonctions et appel systèmes fournissant des informations sur le temps et des fonctions d'attentes (dites "sleep" en anglais), c'est parfois source de confusion, particulièrement si vous êtes nouveau sous Linux.

Voici donc quelques fonctions qui imitent celles de la plateforme Arduino, facilitant ainsi la portabilité du code.

Note:

Même si vous n'appelez pas les fonctions d'entrée/sortie, il vous faudra malgré tout appeler l'une des fonctions d'initialisation de wiringPi. Utilisez simplement wiringPiSetupSys() si vous n'avez pas besoin d'accès root (Administrateur) dans votre programme et n'oublier pas l'instruction
#include <wiringPi.h>

Fonctions

millis

unsigned int millis(void)

Return un nombre dont la valeur représente le nombre de millisecondes depuis que le programme ait appelé une des fonction d'initialisation de wiringPi.

Elle retourne un nombre 32-bit non-signé (unsigned int) qui recommence à zéro après approximativement 49 jours.

micros

unsigned int micros(void)

Retourne un nombre qui représente le le nombre de microsecondes depuis que le programme à appelé une des fonctions d'initialisation de wiringPi.

Elle retourne un nombre 32-bit non-signé (unsigned int) qui recommence à zéro approximativement toutes les 71 minutes.

delay

void delay(unsigned int howLong)

Met l'exécution du programme en pause pendant au moins le nombre de millisecondes indiqués dans le paramètre howLong. Par la nature même du système multitâches Linux, ce temps de pause peut être supérieur au temps désiré.

Paramètre:

  • howLong: temps de pause en milliseconde. Le délai maximum est la valeur maximale d'un entier 32-bit non signé, ce qui représente approximativement 49 jours.

delayMicroseconds

void delayMicroseconds(unsigned int howLong)

Met l'exécution du programme en pause pendant au moins le nombre de microsecondes indiqués dans le paramètre howLong. Par la nature même du système multitâches Linux, ce temps de pause peut être supérieur au temps désiré.

Paramètre:

  • howLong: temps de pause en microsecondes. Le délai maximum est la valeur maximale d'un entier 32-bit non signé, ce qui représente approximativement 71 minutes.

Attention:

  • Les délais inférieurs à 100 microsecondes sont créés à l'aide d'une boucle surveillant continuellement l'évolution du temps du système.
  • Les délais supérieur à 100 microsecondes utilisent la fonction système nanosleep()

Vous devriez considérer l'implication de très courtes pauses sur les performances générale du système, plus spécialement si vous utilisez des threads (pour des opérations multitâches).

En effet, une boucle surveillant l'heure système consomme beaucoup plus de ressource d'un appel a nanosleep(). A contrario, l'appel à NanoSleep() ne peux pas vous assurer de produire exactement le délai demandé... par la nature même du système multitâche Linux, ce temps sera probablement un peu plus élevé.


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.