Triết lý hoặc cách tiếp cận được thực hiện để thực hiện các chức năng quan trọng thời gian cao trong vi điều khiển là gì, nếu có?
Tôi đang làm việc trên một dự án liên quan đến việc xuất ra một dạng sóng vuông chính xác với tần số khác nhau. Tôi đã thực hiện điều này bằng cách sử dụng bộ đếm thời gian và chức năng ngắt. Tuy nhiên, ngay cả để thực hiện điều này một cách chính xác, tôi đã phải hiệu chỉnh phần bù cho số chu kỳ đồng hồ được thực hiện trong quy trình dịch vụ ngắt. Tôi tưởng tượng độ chính xác này sẽ bị xáo trộn khi có một dạng sóng khác như vậy chạy cùng (giả sử tần số cần phải thay đổi cùng một lúc). Có một vi điều khiển mỗi, cho mỗi lần chức năng quan trọng như vậy có vẻ lãng phí.
Lấy một ví dụ khác, về việc thực hiện chức năng đồng hồ (như trong hh: mm: ss). Tôi không thể tưởng tượng rằng mọi vi điều khiển / máy tính cấp cao đều có chip đồng hồ thời gian thực chuyên dụng chỉ để theo dõi thời gian. Tuy nhiên, tôi cảm thấy khó có thể tưởng tượng nó được đo chính xác bằng bộ xử lý lõi, đang bận rộn phục vụ rất nhiều chức năng xuất hiện trong các khoảng thời gian không đồng bộ trong thời gian đó. Tôi tưởng tượng việc đếm thời gian sẽ có lỗi bù, sự thay đổi đó tùy thuộc vào các chức năng đang chạy.
Có một quy trình thiết kế hoặc cách tiếp cận để chứa hoặc đưa ra một dung sai cho độ chính xác có thể đạt được? Hoặc có ai có bất kỳ gợi ý hay gợi ý nào về nơi tôi có thể tìm thêm thông tin liên quan đến việc này không?