lớp Timer -- bộ định thời ảo định kỳ / một lần

Lớp Timer triển khai một bộ định thời ảo được quản lý bằng phần mềm, lên lịch một hàm gọi lại Python một lần (một lần) hoặc lặp đi lặp lại (định kỳ) tại một khoảng thời gian nhất định. Sử dụng nó khi bạn muốn một cách nhẹ nhàng đa cổng để chạy một hàm gọi lại theo lịch -- đối với các tính năng cấp phần cứng (kênh PWM, thu nhận đầu vào, chế độ encoder, thời gian chết, đầu vào ngắt, v.v.), hãy sử dụng pyb.Timer thay thế.

Có sẵn trên mọi cổng OpenMV.

Ví dụ -- hàm gọi lại định kỳ 10 Hz:

from machine import Timer

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

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

Ví dụ -- chạy một hàm gọi lại một lần sau 2 giây:

from machine import Timer

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

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

Constructors

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

Tạo một Timer ảo. id phải là -1 (giá trị duy nhất được hỗ trợ). Bất kỳ đối số từ khóa nào đều được chuyển tiếp đến init() để bộ định thời có thể được cấu hình trong một lần gọi duy nhất.

Methods

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

Khởi tạo / khởi tạo lại bộ định thời.

  • mode chọn ONE_SHOT (kích hoạt một lần rồi dừng) hoặc PERIODIC (kích hoạt lặp đi lặp lại).

  • period là khoảng thời gian tính bằng mili giây.

  • callback được gọi khi bộ định thời kích hoạt. Nó nhận thể hiện Timer làm đối số duy nhất.

deinit() None

Dừng bộ định thời và hủy bất kỳ hàm gọi lại đang chờ nào.

Constants

ONE_SHOT: int

Truyền vào mode để bộ định thời kích hoạt một lần rồi dừng.

PERIODIC: int

Truyền vào mode để bộ định thời kích hoạt lặp đi lặp lại theo khoảng thời gian period.