Thông báo

Collapse
No announcement yet.

Timer trong atmega16

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

  • Timer trong atmega16

    Chào các bác.
    Em có một câu hỏi như sau.
    Em dùng atmega 16. Khi sảy ra ngắt tràn timer , khi đó vđk sẽ thực hiện lệnh ở hàm ngắt timer, tuy nhiên nếu ở VDK 8051 thì cần có 1 lệnh cho timer ngừng làm việc (TRx=0) để timer ngừng chạy, nếu ko Timer sẽ tiếp tục đếm. Tuy nhiên em ko rõ là ở AVR có cần có lệnh đó ko? Hay là cứ sảy ra ngắt thì atmega sẽ thực hiện hết lệnh trong hàm ngắt đó rồi bộ Timer rồi mới tiếp tục đếm?
    Em dùng Codevision AVR.
    Mong các bác chỉ giúp.
    Mua bán thiết bị điện công nghiệp tại Hà Nội, toàn quốc.
    http://diencongnghiep360.com/
    http://tudienhathe.vn/


  • #2
    Timer cứ còn xung nhịp và còn được enable thì nó vẫn đếm tiếp, ngay cả trong khi thực hiện ngắt.
    Thế nên trong chương trình ngắt bạn viết chưuơng trình càng gọn gàng càng tốt.
    VD : Nếu bạn cho delay 5ms ở trong ngắt, trong khi đó ngắt của bạn <5ms, thì Timer vẫn đếm tràn, nhưng có thể ko xảy ra ngắt nữa vì nó đang bị che rùi (đang trong hàm ngắt mà).

    Comment


    • #3
      Bạn clear CS2CS1CS0 = 000; của timer tương ứng thì sẽ dừng timer đó lại.
      AVR đã quay trở lại: ATMEGA32: 66k, ATMEGA8A: 30k, ATMEGA48: 30k.
      Xem thêm tại Online Store ---> Click here
      Mob: 0982.083.106

      Comment


      • #4
        Nguyên văn bởi vietthanh123 Xem bài viết
        Chào các bác.
        Em có một câu hỏi như sau.
        Em dùng atmega 16. Khi sảy ra ngắt tràn timer , khi đó vđk sẽ thực hiện lệnh ở hàm ngắt timer, tuy nhiên nếu ở VDK 8051 thì cần có 1 lệnh cho timer ngừng làm việc (TRx=0) để timer ngừng chạy, nếu ko Timer sẽ tiếp tục đếm. Tuy nhiên em ko rõ là ở AVR có cần có lệnh đó ko? Hay là cứ sảy ra ngắt thì atmega sẽ thực hiện hết lệnh trong hàm ngắt đó rồi bộ Timer rồi mới tiếp tục đếm?
        Em dùng Codevision AVR.
        Mong các bác chỉ giúp.
        Khi đó timer vẫn tiếp tục chạy, hàm trong timer vẫn được thực hiện, thằng nào làm việc gì vẫn cứ làm.Tuy nhiên nếu thời gian tràn của timer quá nhanh sẽ làm các tác vụ trong hàm ngắt ko thực hiện kịp.Nếu vậy bạn nên dừng timer lại ở đầu chương trình ngắt cho tới cuối chương trình thì lại bật nó lên, như vậy sẽ bảo đảm chương trình được thực hiện 100%.Nó cũng tương tự như 8051 thôi.Bạn đọc trong datasheet của nó để hiểu rõ thêm các thanh ghi timer của AVR nhé, khi đó mình dùng timer sẽ hiệu quả hơn.Chúc vui.

        :

        Comment


        • #5

          Comment

          Về tác giả

          Collapse

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

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

          Collapse

          Đang tải...
          X