classe Timer – temporizador virtual periódico / de disparo único

A classe Timer implementa um temporizador virtual gerido por software que agenda um callback Python uma vez (disparo único) ou repetidamente (periódico) com um determinado período. Use-a quando pretender uma forma portável entre portos e de baixo peso para executar um callback de forma programada – para funcionalidades ao nível do hardware (canais PWM, captura de entrada, modo encoder, tempo morto, entrada de paragem, etc.) use pyb.Timer.

Disponível em todos os portos OpenMV.

Exemplo – callback periódico a 10 Hz:

from machine import Timer

def tick(t):
    print("tick")

tim = Timer(-1)
tim.init(period=100, callback=tick)   # 100 ms = 10 Hz

Exemplo – executar um callback uma vez após 2 segundos:

from machine import Timer

def fire(t):
    print("once")

Timer(-1).init(mode=Timer.ONE_SHOT, period=2000, callback=fire)

Construtores

class machine.Timer(id: int = -1, /, *, mode: int = PERIODIC, period: int = -1, callback: Callable[[Timer], None] | None = None)

Constrói um Timer virtual. id deve ser -1 (o único valor suportado). Quaisquer argumentos de palavra-chave são encaminhados para init(), de modo a que o temporizador possa ser configurado numa única chamada.

Métodos

init(*, mode: int = PERIODIC, period: int = -1, callback: Callable[[Timer], None] | None = None) None

Inicializa / reinicializa o temporizador.

  • mode seleciona ONE_SHOT (dispara uma vez e para) ou PERIODIC (dispara repetidamente).

  • period é o período em milissegundos.

  • callback é invocado quando o temporizador dispara. Recebe a instância Timer como único argumento.

deinit() None

Para o temporizador e cancela qualquer callback pendente.

Constantes

ONE_SHOT: int

Passar a mode para que o temporizador dispare uma vez e depois pare.

PERIODIC: int

Passar a mode para que o temporizador dispare repetidamente em intervalos de period.