Thông báo

Collapse
No announcement yet.

input capture trong AVR

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

  • input capture trong AVR

    các bác cho em hỏi chế độ input capture trong avr hoạt động như thế nào vậy, nó được ứng dụng làm gì thế. BÁc nào biết chỉ em phát
    Nếu tôi chết đi, hãy chôn tôi với R,L,C...

    Bùi Đức Thọ
    (ductho0409@gmail.com)

  • #2
    Nguyên văn bởi atmega8 Xem bài viết
    các bác cho em hỏi chế độ input capture trong avr hoạt động như thế nào vậy, nó được ứng dụng làm gì thế. BÁc nào biết chỉ em phát
    input capture là tên của một chân l\lối vào (input pin) của AVR, chân này nối với khối input capture, chức năng của khối này là : Khi có sự kiện (rising,falling,level) ở chân input capture thì giá trị của thanh ghi bộ định thời (1,2...) sẽ được cập nhật (coppy) vào thanh ghi input capture register. Chức năng này dùng để đo khoảng thời gian giữa các sự kiện. Để ý là khi xảy ra sự kiện input capture thì sẽ tạo ra 1 ngắt,nếu ngắt input capture được cho phép. Như vậy chức năng input capture có liên quan mật thiết tới bộ định thời, nên bạn cần tìm hiểu bộ định thời.

    Comment


    • #3
      chức năng này dùng để bạn đo độ rộng xung . Dung khá nhiều trong giao tiếp hồng ngoại

      Comment


      • #4
        cảm ơn bác thavali nhé, bác nói như thế em hiểu thế nào rồi. Tiện đây các bác cho em hỏi luôn bộ timer nếu mình muốn sử dụng nó như bộ đếm xung thì phải làm như thế nào vậy. Bác chỉ cần nói về cơ chế hoạt động thôi còn cụ thể thì để em về em tra datasheet. Thanks
        Nếu tôi chết đi, hãy chôn tôi với R,L,C...

        Bùi Đức Thọ
        (ductho0409@gmail.com)

        Comment


        • #5
          Xung được đưa trực tiếp vào chân ICP. Giả sử đặt ICP làm việc ở chế độ gọi ngắt khi có rising edge thì trong hàm ngăt sẽ có một biến counter dùng để đếm số lần có xung sườn lên đưa vào pin ICP. Như vậy mỗi lần có xung thì giá trị counter sẽ tăng lên 1.

          Chú ý: - counter bi tràn.
          - Nếu xung được tạo ra bởi các sự kiện bấm nút thì vấn đề lọc các xung
          nhiễu cần được xử lý trước khi đưa vào ICP

          Vì ICP nó làm việc cùng với các bộ định thời nên khi có ngắt ICP, bạn có thể ghi lại thời điểm xảy ra ngắt. Từ đó có thể ứng dụng làm các applications khác nhau. Chẳng hạn đo tần số, đo vận tốc, đo gia tốc. vv....

          Jindo_vn

          Comment


          • #6
            Khi đo độ rộng xung, chú ý là trong chương trình ngắt nên đọc giá trị của ICR sớm nhất có thể nếu không sẽ bị các giá trị capture lần sau ghi đè lên, sau đó là đổi sườn cature. Cuối cùng làm gì thì làm

            Comment


            • #7
              chào các pác .
              em là dân mới vào nghề nên còn rất non trẻ mong các pác giúp đỡ.
              hiện em đang học AVR nhưng chưa hiểu rõ lắm về chế độ Input capture.
              nó lưu giữ thời gian vào thanh ghi nào và làm sao "bắt" được khoảng thời gian đó.
              Mong các pác chỉ bảo cho kẻ mới học này.

              Comment


              • #8
                không phải nó lưu khoảng thời gian đâu bạn ạ. Cứ mỗi một lần có sự thay đổi mức ở trên chân inputcapture thì nó copy giá trị của timer vào trong thanh ghi (hình như là ICR). mình dựa vào các giá trị đó và tần số đếm của timer để mình tính toán thời gian thôi. Chúc thành công
                Nếu tôi chết đi, hãy chôn tôi với R,L,C...

                Bùi Đức Thọ
                (ductho0409@gmail.com)

                Comment


                • #9
                  bạn có thể nói rõ hơn dc ko?
                  có phải nó có khả năng bắt giá trị thời gian và lưu giá trị đó vào thanh ghi ICR như bạn nói đó.
                  nhưng nếu khoảng thời gian mình bắt là thuộc vào 2 chu kì liên tiếp của Timer thì tính sao đây ?
                  bạn có thể post cho mình code ví dụ dc ko? mình đang rất cần.
                  Thanks

                  Comment


                  • #10
                    Trong trường hợp mà khoảng thời gian mình bắt rơi vào 2 chu kỳ liên tiếp của timer thì khi đó bạn sẽ sử dụng ngắt tràn timer. Mỗi một lần tràn giá trị đếm bạn lưu vào một cái gì đó, để biết được là nó tràn mấy lần. Như vậy là thoải mái rồi đúng không. ???
                    Nếu tôi chết đi, hãy chôn tôi với R,L,C...

                    Bùi Đức Thọ
                    (ductho0409@gmail.com)

                    Comment


                    • #11
                      uh...
                      bạn nói vậy mình hiểu dc 50% rồi.
                      mình nói thế này xem đúng ko nhé.
                      khi 1 sự kiện nào đó xảy ra tại chân ICP thì khi đó thời điểm đó sẽ dc ghi lại vào thanh ghi ICR (Lưu vào 1 biến a nào đó)và tiếp tục đợi cho đến khi có sự kiện thứ 2 đúng ko? khi có sự kiện 2 xảy ra thì ghi lại tiếp (Lưu vào biến b).
                      khi đó chú ý đến số lần tràn Timer đúng ko? giả sử là n
                      khi đó khoảng thời gian đo dc là: T=(n-1)*CLK(Timer)+ (b+CLK(Timer)-a) đúng ko?
                      dám hỏi cao nhân rằng có phải khi có sự kiện 2 xảy ra thì giá trị sẽ dc ghi đè lên giá trị tại ICR trước đó phải ko?
                      Mong học hỏi ...

                      Comment


                      • #12
                        bạn nói đúng đó, khi có một sự kiện mới thì giá trị mới sẽ ghi đè lên trên giá trị cũ. Thế thôi
                        Nếu tôi chết đi, hãy chôn tôi với R,L,C...

                        Bùi Đức Thọ
                        (ductho0409@gmail.com)

                        Comment


                        • #13
                          các bạn ơi giúp minh cái này với. mình có mấy cái màn hình LCD của máy laptop cũ mình muốn dung nó để làm thành màn hình TV LCD hoặc màn hình LCD để gắn vào máy tính để bàn . bạn nào biết cách xin vui lòng chỉ cho mình với.

                          Comment


                          • #14
                            cảm ơn sự nhiệt tình của bạn nhé.
                            mình đã hiểu được rồi.
                            ah thế bạn đã làm về cái này chưa? nếu có code thì post lên cho sinh động nhé. Many thanks for u.

                            Comment


                            • #15
                              hic, cái này mình đọc chứ chưa làm. Nên không có code đâu, khi nào làm xong gửi code cho mình tham khảo luôn với nhé, mà bạn định làm về cái gì thế
                              Nếu tôi chết đi, hãy chôn tôi với R,L,C...

                              Bùi Đức Thọ
                              (ductho0409@gmail.com)

                              Comment

                              Về tác giả

                              Collapse

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

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

                              Collapse

                              Đang tải...
                              X