Trên Arduino / ATmega328p, các mô-đun Timer / PWM 16 bit có bộ phận bắt đầu vào cho phép ghi lại thời gian đến chính xác của cạnh đầu vào ngay cả khi bộ xử lý đang bận khi cạnh đầu vào đến. (Để biết chi tiết tham khảo bảng dữ liệu , phần 20.9 trên trang 155.)
Raspberry Pi có bất kỳ loại thiết bị ngoại vi phần cứng tương đương nào không, hoặc một số cách khác để đánh dấu thời gian chính xác một cạnh đầu vào xảy ra trong khi bộ xử lý đang bận? Tôi đã thử tìm kiếm thông qua bảng dữ liệu Ngoại vi ARM BCM2835 , nhưng tôi chưa thể tìm thấy bất cứ thứ gì phù hợp với nhu cầu của tôi cho đến nay.
Tôi cho rằng điều này có thể được thực hiện bằng cách sử dụng FIQ để kích hoạt DMA từ bộ hẹn giờ hệ thống sang một nơi khác, nhưng từ tài liệu đăng ký, có vẻ như FIQ chỉ có thể được thiết lập cho các ngắt GPU và cơ sở. Tôi không chắc chắn làm thế nào để FIQ kích hoạt các ngắt GPIO và ngay cả khi tôi biết cách, tôi không chắc liệu đây có phải là một cách chính xác để tiến hành hay không, nếu có cách nào khác để làm điều này sạch sẽ hơn.
Làm thế nào tôi có thể nắm bắt chính xác thời gian đến của một cạnh đầu vào?
Một độ trễ nhỏ liên tục không phải là vấn đề vì tôi chỉ có thể trừ nó ra, nhưng đối với ứng dụng của tôi, tôi cần độ chính xác ít nhất là micro giây hoặc tốt hơn.