Minuteur#

Introduction#

La classe timer est dérivée de la classe de base brain et fournit des fonctionnalités pour mesurer le temps écoulé, vous permettant de suivre les durées et de planifier des événements basés sur le temps dans un programme VEX V5.

Accéder#

Brain.Timer

Notes#

  • Brain.Timer est une instance de la classe timer et fournit la même fonctionnalité.

Exemple#

/* This constructor is required when using VS Code.
A Brain is generated automatically at the start of
VEXcode projects. */

// Create the V5 Brain
brain Brain = brain();

// Display the timer as it ticks up
while (true) {
  Brain.Screen.clearScreen();
  Brain.Screen.setCursor(1, 1);
  Brain.Screen.print("Time: %.2f", Brain.Timer.time());

  wait(50, msec);
}

Fonctions des membres#

La classe timer comprend les fonctions membres suivantes :

  • clear — Réinitialise le minuteur à zéro.

  • time — Renvoie le temps écoulé depuis le début du chronomètre.

  • event — Appelle une fonction après un nombre spécifié de millisecondes, avec des arguments optionnels.

Avant d’appeler les fonctions membres de timer , une instance brain doit être créée, comme indiqué ci-dessous :

// Create the V5 Brain
brain Brain = brain();

clear#

Réinitialise la valeur actuelle du minuteur à zéro. Ensuite, le minuteur recommence immédiatement à compter à partir de zéro.

Available Functions
void clear();

Parameters

Cette fonction n’accepte aucun paramètre.

Return Values

Cette fonction ne renvoie aucune valeur.

Examples
while (true) {
  // Reset the timer every time the screen is pressed
  if (Brain.Screen.pressing()) {
    Brain.Timer.clear();
  }
  Brain.Screen.clearScreen();
  Brain.Screen.setCursor(1, 1);
  Brain.Screen.print("Time: %.2f", Brain.Timer.value());
  wait(50, msec);
}

time#

Renvoie la valeur actuelle du minuteur.

Available Functions

1 — Renvoie le temps écoulé en millisecondes.

uint32_t time() const;

2 — Renvoie le temps écoulé dans les unités de temps spécifiées.

double time(
    timeUnits units ) const;

Parameters

Paramètre

Taper

Description

units

timeUnits

Unités utilisées pour renvoyer le temps écoulé :

  • seconds sec secondes
  • msec millisecondes

Return Values
  • La fonction sans paramètre (1) renvoie un uint32_t représentant le temps écoulé en millisecondes.

  • La fonction avec un paramètre timeUnits timeUnits 2) renvoie un double double représentant le temps écoulé dans les unités spécifiées.

Notes
  • Le chronomètre se déclenche au démarrage du projet.

  • L’appel à clear réinitialise la valeur du minuteur à zéro.

Examples
// Display the timer as it ticks up
while (true) {
  Brain.Screen.clearScreen();
  Brain.Screen.setCursor(1, 1);
  Brain.Screen.print("Time: %.2f", Brain.Timer.time());

  wait(50, msec);
}

event#

Enregistre une fonction de rappel à exécuter après un délai spécifié.

Available Functions

1 — Enregistre une fonction de rappel à exécuter après un délai spécifié et transmet une valeur définie par l’utilisateur à la fonction de rappel.

static void event(
    void (*callback)(void*),
    uint32_t value );

2 — Enregistre une fonction de rappel à exécuter après un délai spécifié.

static void event(
    void (*callback)(void),
    uint32_t value );

Parameters

Paramètre

Taper

Description

callback

void ()(void)

Une fonction qui sera appelée après le délai spécifié et qui reçoit un argument défini par l’utilisateur.

callback

void (*)(void)

Une fonction qui sera appelée après le délai spécifié.

value

uint32_t

Le délai, en millisecondes, avant l’exécution de la fonction de rappel.

Return Values

Cette fonction ne renvoie aucune valeur.

Notes
  • Cette fonction planifie un rappel unique ; elle ne se répète pas automatiquement.

  • La fonction de rappel doit renvoyer void.

  • Plusieurs événements peuvent être programmés simultanément.

Examples

Définissez la fonction (en dehors de int main())

// Create a function to turn the screen orange
void turnOrange() {
  Brain.Screen.clearScreen(orange);
}

Enregistrez la fonction à l’intérieur de int main()

int main() {
  /* vexcodeInit() is only required when using VEXcode.
  Remove vexcodeInit() if compiling in VS Code. */
  vexcodeInit();

  // Call turnOrange after 2 seconds
  Brain.Timer.event(turnOrange, 2000);
}