Thông báo

Collapse
No announcement yet.

Dieu khien Timer

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

  • Dieu khien Timer

    Chao cac bac!
    Em la nguoi moi tim hieu ve AVR cung nhu Vi dieu khien. Cho em hoi cac cao thu cai, hien em dang lap trinh cho con Atmega16 bang codevision. Van de o cho: dung ngat ngoai (INT0) de kich hoat timer0 tinh thoi gian sau do tat timer0 di. Theo em lam voi 89C51 thi se dung TR0 de dieu khien timer0, nhung voi AVR thi dung the quai nao cac cao thu nhi. A con van de dat uu tien cac ngat nua chu, cua em o day la ngat ngoai INT0 cao hon ngat timer0. Xin cac ban chi giup ...da ta, da ta.
    Xin chuc dien dan mang lai nhieu loi ich cho anh em tim hieu AVR chung ta.

  • #2
    Timer của AVR không có bit nào cho phép chạy hay dừng như MCS51. Thay vào đó nó sử dụng cơ chế có vẻ hơi bạo lực, đó là cho clock vào thì timer chạy, tắt clock đi thì dừng. Việc cấp hay cắt clock cho timer thường được thực hiện bởi 3 bit cuối cùng trong một trong các thanh ghi điều khiển TCCRx của timer đó. Tổ hợp 3 bit đó = 000 là không có clock, timer dừng. Các tổ hợp khác nếu không là reserved thì sẽ cấp clock cho timer với các hệ số chia tần khác nhau. Đọc datasheet để biết cụ thể.
    Về ưu tiên ngắt thì AVR cũng có 2 cơ chế phân xử đồng thờilần lượt như MCS51. Phân xử các ngắt đồng thời là theo thứ tự ưu tiên cứng của nhà sản xuất, ngắt mức ưu tiên cao là ngắt có thứ tự thấp hơn trong bảng vector ngắt. Với các ngắt xảy ra xen vào nhau thì không có thanh ghi quy định mức ưu tiên như thanh ghi IP của họ MCS51. Thay vào đó, cơ chế của AVR là khi ngắt bit I (bit cho phép ngắt toàn cục) sẽ tự động bị xóa, do vậy mà các ngắt sẽ đều bị cấm trong quá trình xử lý ngắt. Người lập trình sẽ tự định ra cơ chế ưu tiên ngắt riêng của mình bằng cách cho phép ngắt này, cấm ngắt kia, và tất nhiên dựng bit I lên bằng lệnh sei để ngắt thứ hai có thể xảy ra chen vào quá trình xử lý ngắt hiện tại.
    Lần sau cố gắng gõ chữ có dấu nhé.
    Thân mến,
    blackmoon.

    Comment


    • #3
      Cảm ơn bạn BlackMoon.
      Tôi thấy bài trả lời của bạn rất hợp lý, tôi đã áp dụng vào bài tập của mình rất ổn...hì hì hì. Không ngờ mấy cái bít cuối CS02:CS00 lại dùng vào việc đấy. Chắc là tôi sẽ phải mất thời gian một chút để nắm chắc timer đã.

      Còn về ngắt: mệt với con AVR quá, tôi mới nhìn thấy ngắt của AVR Atmega16 đã choáng rồi, những 22 ngắt lận làm thế nào để quản lý được các ngắt này chắc còn phải thỉnh giáo ý kiến của các bạn có kinh nghiệm thêm..

      Còn về phần chữ nghĩa bạn thông cảm nhé, lần đầu chân ướt chân ráo vào diễn đàn chúng ta, tôi cứ tưởng không gõ được chữ Việt có dấu thành ra mới để mọi người căng mắt dịch, thật có lỗi ...có lỗi...tôi đã sửa sai rồi đây.

      Chúc mọi người vui vẻ và thành công BINHMINH20
      Last edited by binhminh20; 28-03-2006, 17:33.

      Comment


      • #4
        em muốn dùng counter để đếm ví dụ đếm 5 sản phẩm chạy qua bằng truyền thì lại lệnh đẩy một thùng hàng đến thì làm thế nào các bác,
        em là dân học mót nên không biết các thanh ghi của AVR đâu, em chỉ biết cách lập trình bằng CodevisionAVR nên các bác chỉ giùm em nhé
        Thiết kế chế tạo các loại máy xoáy nắp, chiết rót định lượng dùng trong dược phẩm và thực phẩm.

        Comment


        • #5
          Một lời khuyên chân thành là bạn nên đi từng bước cơ bản. Bạn có 'mót' mãi được không. Vui!

          Comment


          • #6
            vâng em cảm ơn lời khuyên của anh KH2 em cũng cố gắng học cơ bản nhưng ở trường thày dạy 8051 cơ, trình độ tiếng Anh của em thì còn nhiều hạn chế mà thời gian thì ít quá, em phải làm sản phẩm để nộp, con gái nhiều khi cũng khó, cả lớp có mình em là con gái, mà mấy anh con trai cũng không chú ý đến vi điều khiển, nhóm thực hành của em thì các anh ấy cúng không biết tí gì, em bảo đi mua linh kiện gì thì chỉ biết đi mua cái ấy rồi em làm cho cả nhóm cùng nộp.tối có ít thời gian thì mọi người cứ đên chơi đông, không tiếp thì họ lại cho rằng mình kiêu chẳng lẽ suốt ngày đóng cửa
            em đành phải nhờ các anh hướng dẫn cóp nhặt dần dần vậy anh ạ
            học mãi 8051 thì ra không làm được việc nên em mới chuyển qua làm với AVR
            Thiết kế chế tạo các loại máy xoáy nắp, chiết rót định lượng dùng trong dược phẩm và thực phẩm.

            Comment


            • #7
              Nguyên văn bởi Le Thi Bich Xem bài viết
              vâng em cảm ơn lời khuyên của anh KH2 em cũng cố gắng học cơ bản nhưng ở trường thày dạy 8051 cơ, trình độ tiếng Anh của em thì còn nhiều hạn chế mà thời gian thì ít quá, em phải làm sản phẩm để nộp, con gái nhiều khi cũng khó, cả lớp có mình em là con gái, mà mấy anh con trai cũng không chú ý đến vi điều khiển, nhóm thực hành của em thì các anh ấy cúng không biết tí gì, em bảo đi mua linh kiện gì thì chỉ biết đi mua cái ấy rồi em làm cho cả nhóm cùng nộp.tối có ít thời gian thì mọi người cứ đên chơi đông, không tiếp thì họ lại cho rằng mình kiêu chẳng lẽ suốt ngày đóng cửa
              em đành phải nhờ các anh hướng dẫn cóp nhặt dần dần vậy anh ạ
              học mãi 8051 thì ra không làm được việc nên em mới chuyển qua làm với AVR
              Híc. Dựa vào đâu mà bạn nói 8051 ra ko làm được việc nhỉ?
              Mà sao bạn lại vào nhóm có toàn những anh "ga lăng" thế nhỉ??? Ko phụ giúp con gái lại còn giao luôn việc cho bạn. Bái phục!

              Comment


              • #8
                Nguyên văn bởi Le Thi Bich Xem bài viết
                em muốn dùng counter để đếm ví dụ đếm 5 sản phẩm chạy qua bằng truyền thì lại lệnh đẩy một thùng hàng đến thì làm thế nào các bác,
                em là dân học mót nên không biết các thanh ghi của AVR đâu, em chỉ biết cách lập trình bằng CodevisionAVR nên các bác chỉ giùm em nhé
                Nếu chỉ có việc đếm đủ-đẩy sản phẩm ra thì em nên dùng ngắt ngoài cho dễ. Dùng code winzard trong CV, nó tạo luôn cho cái khung chuơng trình phục vụ ngắt rồi. Em chỉ cẩn tăng cái biến đếm trong đó, đến 5 thì cho thực hiện cái gì đó là được.
                Chúc thành công!
                Nỏ biết chữ mần răng ký được??!! Thôi nhé.

                Comment


                • #9
                  Nguyên văn bởi Le Thi Bich Xem bài viết
                  tối có ít thời gian thì mọi người cứ đên chơi đông, không tiếp thì họ lại cho rằng mình kiêu chẳng lẽ suốt ngày đóng cửa
                  Ngoài lề tí: Muốn đuổi bọn nó dễ thôi, em cứ dở chuyện kỹ thuật cao ra mà nói, mấy hôm bọn nó chán là chuồn hết. Hà hà hà
                  Nỏ biết chữ mần răng ký được??!! Thôi nhé.

                  Comment


                  • #10
                    anh ơi nhưng nếu dùng ngắt ngoài thì khi ngắt sảy ra sẽ làm đình trệ các hoạt động khac, vì phần cứng là máy cũ nên tín hiệu nhận được qua công tắc hành trình em muốn tạo một thời gian trễ để chống dội nên em muốn đếm bằng times,nếu có trễ cũng không ảnh hưởng đến hoạt động khác, em dùng chỉ một con Mega8 điều khiển toàn bộ hoạt động của một máy chiết bao gồm đóng mở của vào, cửa ra, đếm ở đầu vào, đầu ra, chiết dịch, xoáy nắp chai đồng thời hiển thị số sản phẩm bằng leb7 thanh
                    các anh góp ý cho em nhé
                    à em còn cái nữa muốn hỏi các anh:
                    em dùng LM7805 làm nguồn nhưng trong mạch có leb7thanh nên nó sụt chỉ còn 3.5V, các anh có mạch nguồn nào khác chỉ cho em với
                    Last edited by Le Thi Bich; 08-10-2008, 18:10.
                    Thiết kế chế tạo các loại máy xoáy nắp, chiết rót định lượng dùng trong dược phẩm và thực phẩm.

                    Comment


                    • #11
                      Nguyên văn bởi thangktvta Xem bài viết
                      Ngoài lề tí: Muốn đuổi bọn nó dễ thôi, em cứ dở chuyện kỹ thuật cao ra mà nói, mấy hôm bọn nó chán là chuồn hết. Hà hà hà
                      em dùng đủ mọi cách anh ạ con gái nhiều khi khó lắm anh ơi
                      Thiết kế chế tạo các loại máy xoáy nắp, chiết rót định lượng dùng trong dược phẩm và thực phẩm.

                      Comment


                      • #12
                        Khó gì em, anh mà là em, anh cứ bảo chúng nó: "Ai làm dc cái mạch này trc thì tớ cho mi một cái :X". Xem chúng nó có làm không ?

                        Comment


                        • #13
                          Nguyên văn bởi hoangsonk49 Xem bài viết
                          Khó gì em, anh mà là em, anh cứ bảo chúng nó: "Ai làm dc cái mạch này trc thì tớ cho mi một cái :X". Xem chúng nó có làm không ?
                          thôi thồi thôi!.... xin anh
                          Thiết kế chế tạo các loại máy xoáy nắp, chiết rót định lượng dùng trong dược phẩm và thực phẩm.

                          Comment


                          • #14
                            Có ai chỉ em thêm về bộ timer1 không...! cho em đoạn code hướng dẫn bằng asm thì quá tốt.......

                            Comment


                            • #15
                              Mình cũng đang muốn dùng timer giống như Bich, mọi người xem hộ xem có code nào không, có chú thích bên cạnh cho dễ hiểu, mình cũng mới tìm hiểu về AVR nên không rõ lắm, vấn đề của mình là có 1 xung vào, lúc 1 lúc 0,.... mình định là cứ đếm dc 100 xung 1 thì sẽ thực thiện tăng số đếm lên 1 (số đếm này dc lưu trong flash rom), vạy thì cần sử dụng những chân nào của AVR, mình dùng ATMEGAL8L. Cho mình hỏi luôn là phải khai báo những gì, như thế nào ? Cám ơn nhiều

                              Comment

                              Về tác giả

                              Collapse

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

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

                              Collapse

                              Đang tải...
                              X