Thông báo

Collapse
No announcement yet.

Cách đếm số lần tràn timer của Atmega16

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

  • Cách đếm số lần tràn timer của Atmega16

    cho e hỏi là với chế độ bình thường Timer1 sau khi đếm từ 0-->top =65536 thì avr sẽ tràn và cờ Tov1 sẽ được bật lên 1.nhưng đến lần thứ 2 tràn thì TOV1 sẽ ở giá trị mấy(e đọc datasheet mà ko hiểu chỗ này),như vậy nếu muốn đọc số lần tràn của Timer 1 thì mình phải làm sao có cách nào khác ngoài việc quan sát cờ TOV1 ko ạ,ai có code hay ví dụ mẫu cho e xin để e dễ hình dung với .E mới tiếp xúc AVR nên còn nhiều thắc mắc mong các mem giúp đỡ nhiều

  • #2
    Bạn không hiểu bản chất của cờ TOV1, cờ đó chỉ là báo hiệu tràn thôi, còn nếu muốn đếm số lần tràn thì bạn phải sử dụng một biến khác nhé

    Comment


    • #3
      vậy là cách sử dụng biến ntn b cho mình gợi ý chút đi ,biến này là từ trong các bit,cờ trong timer hay từ code ra vậy

      Comment


      • #4
        Bạn sử dụng thanh ghi R0 hay R1...... gì đó ở các bank thanh ghi ấy

        Comment


        • #5
          hix - khổ quá cơ
          thế này này:

          cờ trong timer được tự động bật lên 1 khi có tràn - và để cho lần tràn sau thì ta phải xóa đi trong chương trình ngắt

          giả sử: demsolantran la 1 biến

          int demsolantran = 0;


          Chuong trinh ngat timer:
          void ngat_timer()
          {
          xoa co bao ngat di ( cho OV = 0);
          tăng biến demsolantran lên 1 đơn vị ( demsolantran = demsolantran + 1 )

          }
          Be quan. Plz contact through email:

          Comment


          • #6
            Nguyên văn bởi Lenh Ho Xem bài viết
            hix - khổ quá cơ
            thế này này:

            cờ trong timer được tự động bật lên 1 khi có tràn - và để cho lần tràn sau thì ta phải xóa đi trong chương trình ngắt

            giả sử: demsolantran la 1 biến

            int demsolantran = 0;


            Chuong trinh ngat timer:
            void ngat_timer()
            {
            xoa co bao ngat di ( cho OV = 0);
            tăng biến demsolantran lên 1 đơn vị ( demsolantran = demsolantran + 1 )

            }
            Ý bạn ấy là muốn đếm số lân tràn

            Comment


            • #7
              thế biến demsolantran ban ko hiểu ý nghĩa sao - haizzzzz
              Be quan. Plz contact through email:

              Comment


              • #8
                Mình mới học 8051 thôi nhưng nếu trong trường hợp muốn đếm số lần tràn thì khi tràn lần 1 cờ tràn ( TFx) sẽ báo 1 thì ta chỉ việc cộng vào thanh ghi A rồi xóa đi sau đó tràn tiếp thì cộng tiếp vào thôi. Bạn xem trong AVR thanh ghi để xử lý phép toán học là gì nhé.

                Comment

                Về tác giả

                Collapse

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

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

                Collapse

                Đang tải...
                X