Différences entre versions de « Pi-WiringPi-Reference-TimeManagament »

De MCHobby - Wiki
Sauter à la navigation Sauter à la recherche
(Page créée avec « {{Pi-WiringPi-NAV}} == Gestion du temps == While Linux provides a multitude of system calls and functions to providing various timing and sleeping functions, sometimes it ca... »)
 
 
(4 versions intermédiaires par le même utilisateur non affichées)
Ligne 2 : Ligne 2 :
  
 
== Gestion du temps ==
 
== Gestion du temps ==
While Linux provides a multitude of system calls and functions to providing various timing and sleeping functions, sometimes it can be quite confusing, especially if you are new to Linux, so the ones presented here mimic those available on the Arduino platform, making porting code and writing new code somewhat easier.
+
{{bloc-etroit|text=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.  
  
Note: Even if you are not using any of the input/output functions you still need to call one of the wiringPi setup functions – just use wiringPiSetupSys() if you don’t need root access in your program and remember to #include <wiringPi.h>
+
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 [[Pi-WiringPi-Reference-Setup-Functions|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 <br /> #include <wiringPi.h> }}
  
 
== Fonctions ==
 
== Fonctions ==
=== millis(void) ===     
+
=== millis ===     
 
  unsigned int millis(void)
 
  unsigned int millis(void)
  
This returns a number representing the number if milliseconds since your program called one of the wiringPiSetup functions. It returns an unsigned 32-bit number which wraps after 49 days.
+
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.  
  
=== micros(void) ===
+
Elle retourne un nombre 32-bit non-signé (unsigned int) qui recommence à zéro après approximativement 49 jours.
 +
 
 +
=== micros ===
 
  unsigned int micros(void)
 
  unsigned int micros(void)
  
This returns a number representing the number of microseconds since your program called one of the wiringPiSetup functions. It returns an unsigned 32-bit number which wraps after approximately 71 minutes.
+
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)
  
=== 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é.
void delay (unsigned int howLong)
 
  
This causes program execution to pause for at least howLong milliseconds. Due to the multi-tasking nature of Linux it could be longer. Note that the maximum delay is an unsigned 32-bit integer or approximately 49 days.
+
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(unsigned int howLong) ===
+
=== delayMicroseconds ===
  void delayMicroseconds (unsigned int howLong)
+
  void delayMicroseconds(unsigned int howLong)
  
This causes program execution to pause for at least howLong microseconds. Due to the multi-tasking nature of Linux it could be longer. Note that the maximum delay is an unsigned 32-bit integer microseconds or approximately 71 minutes.
+
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é.  
  
Delays under 100 microseconds are timed using a hard-coded loop continually polling the system time, Delays over 100 microseconds are done using the system nanosleep() function – You may need to consider the implications of very short delays on the overall performance of the system, especially if using threads.
+
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é.
 
{{Pi-WiringPi-TRAILER}}
 
{{Pi-WiringPi-TRAILER}}

Version actuelle datée du 12 octobre 2013 à 19:09


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.