Temporizador#
Introdução#
A classe timer é utilizada para controlar o tempo e interagir com um temporizador independente do timer do cérebro.
Construtor de Classes#
timer();
Destrutor de classes#
Destrói o objeto com temporizador timer e liberta os recursos associados.
~timer();
Parâmetros#
Este construtor não aceita qualquer parâmetro.
Exemplos#
// Create a timer instance
timer myTimer = timer();
Funções de membro#
A classe timer inclui as seguintes funções membro:
reset— Resets the timer to zero.value— Returns the elapsed time since the timer started.event— Chama uma função após um número especificado de milissegundos, com argumentos opcionais.
Antes de chamar qualquer função membro do temporizador 1 timer , deve ser criada uma instância do temporizador 3 timer , como se mostra abaixo:
/* This constructor is required to use a
custom timer. Replace the values
as needed. */
// Create a timer instance
timer myTimer = timer();
/* This constructor is required when using VS Code.
A Brain is generated automatically at the start of
VEXcode projects. */
// Create the Brain to use Brain.Timer
brain Brain = brain();
reset#
Zera o temporizador.
Available Functionsvoid reset();
Esta função não aceita qualquer parâmetro.
Return ValuesEsta função não devolve qualquer valor.
Exampleswhile (true) {
// Clear the timer every time the screen is pressed
if (Brain.Screen.pressing()) {
myTimer.reset();
}
Brain.Screen.clearScreen();
Brain.Screen.setCursor(1, 1);
Brain.Screen.print("Time: %.2f", myTimer.value());
wait(50, msec);
}
value#
Retorna o valor atual do temporizador.
Available Functionsdouble value();
Esta função não aceita qualquer parâmetro.
Return ValuesUm número decimal que representa a quantidade de tempo decorrido em segundos.
NotesO cronómetro começa a contar assim que é montado.
Calling
resetresets the timer value to zero.
// Display the timer as it ticks up
while (true) {
Brain.Screen.clearScreen();
Brain.Screen.setCursor(1, 1);
Brain.Screen.print("Time: %.2f", myTimer.value());
wait(50, msec);
}
event#
Regista uma função de retorno de chamada para ser executada após um atraso especificado.
Available Functions1 — Regista uma função de retorno de chamada para ser executada após um atraso especificado e passa um valor definido pelo utilizador para a função de retorno de chamada.
static void event( void (*callback)(void *), uint32_t value );
Parameters2 — Regista uma função de chamada de retorno para ser executada após um atraso especificado.
static void event( void (*callback)(void), uint32_t value );
Parâmetro |
Tipo |
Descrição |
|---|---|---|
|
|
Uma função que será chamada após o atraso especificado e que recebe um argumento definido pelo utilizador. |
|
|
Uma função que será chamada após o atraso especificado. |
|
|
O atraso, em milissegundos, antes da execução da função de chamada de retorno. |
Esta função não devolve qualquer valor.
NotesEsta função agenda uma chamada de retorno única; não se repete automaticamente.
A função de callback deve retornar
void.Podem ser agendados vários eventos ao mesmo tempo.
Defina a função (fora de
int main())// Create a function to turn the screen orange void turnOrange() { Brain.Screen.clearScreen(orange); }Registe a função dentro de
int main()int main() { /* vexcodeInit() is only required when using VEXcode. Remove vexcodeInit() if compiling in VS Code. */ vexcodeInit(); timer myTimer = timer(); // Call turnOrange after 2 seconds myTimer.event(turnOrange, 2000); }