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

            • nguyendinhvan
              Trả lời cho Vấn đề về tốc độ quay
              bởi nguyendinhvan
              Sử 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.
              14-12-2025, 19:50
            • Andrea14
              Vấn đề về tốc độ quay
              bởi Andrea14
              Chà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...
              12-12-2025, 12:42
            • bqviet
              Trả lời cho Đấu tắt điện cho máy tính bảng
              bởi bqviet
              Bqv 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.
              06-12-2025, 17:17
            Đang tải...
            X