Thông báo

Collapse
No announcement yet.

Help!!! Hàm thời gian trong C!!!

Collapse
X
 
  • Lọc
  • Giờ
  • Show
Clear All
new posts

  • Help!!! Hàm thời gian trong C!!!

    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 đỡ

  • #2
    Nguyên văn bởi gianuakkk Xem bài viết
    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 đỡ
    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.

    Comment


    • #3
      Nguyên văn bởi caonhan_2004 Xem bài viết
      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.
      Ứ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


      • #4
        Nguyê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?
        ở 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 C

        Comment


        • #5
          timer intterup mode auto reload đó bác

          Comment


          • #6
            cảm ơn các bạn nhiều Mình làm được rồi (y)

            Comment

            Về tác giả

            Collapse

            gianuakkk Tìm hiểu thêm về gianuakkk

            Bài viết mới nhất

            Collapse

            Đang tải...
            X