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

A classe Timer implementa um timer virtual gerenciado por software que agenda um callback Python uma vez (disparo único) ou repetidamente (periódico) em um dado período. Use-a quando você quiser uma maneira leve e portável entre portas de executar um callback de forma agendada – para recursos de nível de hardware (canais PWM, captura de entrada, modo de encoder, tempo morto, entrada de break, etc.) use pyb.Timer em seu lugar.

Disponível em todas as portas OpenMV.

Exemplo – callback periódico de 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 nomeados são encaminhados para init() para que o timer possa ser configurado em uma única chamada.

Métodos

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

Inicializa / reinicializa o timer.

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

  • period é o período em milissegundos.

  • callback é invocado quando o timer dispara. Ele recebe a instância Timer como seu único argumento.

deinit() None

Para o timer e cancela qualquer callback pendente.

Constantes

ONE_SHOT: int

Passe para mode para que o timer dispare uma vez e então pare.

PERIODIC: int

Passe para mode para que o timer dispare repetidamente em intervalos de period.