Mình đang lập trình cho VĐK AT89S52 bằng Keil-C. Có bạn nào biết cách tạo một hàm để lấy thời gian chạy song song với chương trình không (không phải hàm delay). Khi thực thi chương trình, lúc nào cần sẽ lấy giá trị thời gian từ hàm đó. Các hàm thời gian trong thư viện time.h chỉ lấy thời gian đến giây thôi, còn mình muốn lấy đến milli hoặc micro giây. Mong mọi người giúp đỡ
Thông báo
Collapse
No announcement yet.
Help!!! Hàm thời gian trong C!!!
Collapse
X
-
Bạn dùng timer của 89S52 làm việc này. vì timer trên nó chạy độc lập, khong giống như delay bằng các vòng lặp vi xử lý không thể làm được việc khác khi delay.Nguyên văn bởi gianuakkk Xem bài viếtMình đang lập trình cho VĐK AT89S52 bằng Keil-C. Có bạn nào biết cách tạo một hàm để lấy thời gian chạy song song với chương trình không (không phải hàm delay). Khi thực thi chương trình, lúc nào cần sẽ lấy giá trị thời gian từ hàm đó. Các hàm thời gian trong thư viện time.h chỉ lấy thời gian đến giây thôi, còn mình muốn lấy đến milli hoặc micro giây. Mong mọi người giúp đỡ
-
Ứng dụng timer của 89s52 mình đã được học rồi nhưng chỉ học hai chế độ mode 0 và 1 để tạo hàm delay với thời gian chính xác thôi. đếm tối đa 65536 xung là tràn rồi. Bạn có thể cho mình đoạn code ví dụ được không? có phải dùng timer ở mode 2 để đếm nạp lại không?Nguyên văn bởi caonhan_2004 Xem bài viếtBạn dùng timer của 89S52 làm việc này. vì timer trên nó chạy độc lập, khong giống như delay bằng các vòng lặp vi xử lý không thể làm được việc khác khi delay.
Comment
-
ở mode 0 bạn có thể sử dụng ngắt tràn , sau đó nạp lại giá trị cho timer bằng phần mềm ( nạp trong trình phục vụ ngắt). ví dụ bạn khởi tạo timer với chu kỳ ngắt là 10ms chẳng hạn. bây giờ bạn muốn làm một việc C sau 100ms. Bạn sẽ khai báo một biến i, ban đầu i =0, trong trình phục vụ ngắt thì tăng i (i++), kiểm tra nếu (i==10) , thực hiện công viec C, rùi lại gán i=0; Vậy bạn đã có thời gian tương đối chính xác sau 100ms để làm việc CNguyên văn bởi gianuakkk Xem bài viếtỨng dụng timer của 89s52 mình đã được học rồi nhưng chỉ học hai chế độ mode 0 và 1 để tạo hàm delay với thời gian chính xác thôi. đếm tối đa 65536 xung là tràn rồi. Bạn có thể cho mình đoạn code ví dụ được không? có phải dùng timer ở mode 2 để đếm nạp lại không?
Comment
Bài viết mới nhất
Collapse
-
Trả lời cho Vấn đề về tốc độ quaybởi nguyendinhvanSử dụng động cơ servor, hoặc lắp thêm một cái encoder vào động cơ bước. Encoder sẽ kiểm soát động cơ có quay hoặc đứng im.
-
Channel: Điện tử truyền hình
14-12-2025, 19:50 -
-
bởi Andrea14Chào mọi người,
Tôi muốn mô phỏng sự thay đổi các mùa bằng cách từ từ nghiêng một quả địa cầu 16 inch bằng một động cơ bước nhỏ. Một động cơ bước khác sẽ quay quả địa cầu theo thời gian thực. Hệ thống truyền động...-
Channel: Điện tử truyền hình
12-12-2025, 12:42 -
-
Trả lời cho Đấu tắt điện cho máy tính bảngbởi bqvietBqv cáo lỗi vì chưa đủ khả năng diễn giải để người đọc hiểu. Người làm kỹ thuật sâu đôi khi như thế đó. Về việc nạp pin không vào dù cell mới, khả năng cái mạch quản lý đó đã hỏng - cũng chính là nguyên nhân đám cell cũ hỏng từ đầu.
-
Channel: Thiết bị điện tử cá nhân
06-12-2025, 17:17 -
Mình làm được rồi (y)

Comment