Thông báo

Collapse
No announcement yet.

Nhiều ngõ ra PWM ???

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

  • Nhiều ngõ ra PWM ???

    Nhờ các pro chỉ giúp làm sao để có thể tạo ra 8 ngõ ra PWM trên atmega 8, vì bình thường atmege8 chỉ có 3 ngõ ra PWM là OC1A, OC1B và OC2.

    nhờ các pro mách nước dùm với ? T đang dùng codevision để lập trình.

  • #2
    Nguyên văn bởi core T Xem bài viết
    Nhờ các pro chỉ giúp làm sao để có thể tạo ra 8 ngõ ra PWM trên atmega 8, vì bình thường atmege8 chỉ có 3 ngõ ra PWM là OC1A, OC1B và OC2.

    nhờ các pro mách nước dùm với ? T đang dùng codevision để lập trình.
    AVR sử dụng timer để tạo PWM, vì vậy cứ dùng PWM là bạn sẽ mất bộ Timer, số lượng Timer và kiểu (8bit, 16bit) trong mỗi loại AVR là khác nhau. Atmega8 có 3 timer, và hỗ trợ 3 kênh ra PWM trực tiếp. Vì vậy bạn sẽ không thể tăng số kênh này lên ngoài việc quay trở lại tự lập trình tạo PWM bằng phần mềm.

    Loại AVR có thể thay thế trực tiếp cho ATMEGA8 là dòng ATMEGA48,88,168, là đời thay thế cho ATMEGA8, tương thích hoàn toàn về chân cẳng nhưng hỗ trợ tới 6 kênh ra PWM (dù cũng chỉ có 3 timer).

    Dòng AVR mạnh nhất hiện nay có thể kiếm trên thị trường một cách dễ dàng là ATMEGA64 hoặc ATMEGA128, với 4 timer, hỗ trợ 8 kênh ra PWM.
    PNLab
    Mạch nạp/debug ULink2, Jlink ARM USB
    Mạch nạp AVR, PIC, 8051, MSP430 USB
    Mạch phát triển STM32, ARM9, ARM11
    more...www.pnlabvn.com

    Comment


    • #3
      Ngoài cách của bro sphinx, nếu muốn dùng atmega8 bạn có thể mở rộng các ngõ ra PWM bằng cách thêm phần cứng, chẳng hạn như dùng thêm 4017......

      Comment


      • #4
        Ngoài giải pháp của bác sphinx và bac TLV toàn dùng "cứng" cả, T nghĩ chắc có giải pháp mềm chứ nhỉ !?

        Cao thủ AVR nhiều quá trời sao chẳng ai hé tí "bí kíp" vậy ???

        hic hic

        Comment


        • #5
          nếu không yêu cầu độ phân giải quá cao và tần số cao(hoặc cái cần cao sẽ dùng pwm tích hợp) thì viết pwm bằng phần mềm cho cả vài chục cổng cũng đươc.còn muốn vừa cao vừa nhiều thì bảo atmel nó làm cho.

          Comment


          • #6
            Nguyên văn bởi kaokuong Xem bài viết
            nếu không yêu cầu độ phân giải quá cao và tần số cao(hoặc cái cần cao sẽ dùng pwm tích hợp) thì viết pwm bằng phần mềm cho cả vài chục cổng cũng đươc.còn muốn vừa cao vừa nhiều thì bảo atmel nó làm cho.
            Em đang chờ bác chỉ giáo ! Mong bác chiếu cố.

            Comment


            • #7
              Xài DSPIC30 ấy, có mấy em có đến 8 kênh PWM lận, xài không hết ấy chứ.

              Comment


              • #8
                Nguyên văn bởi core T Xem bài viết
                Em đang chờ bác chỉ giáo ! Mong bác chiếu cố.
                pwm bằng phần mềm trước đây mình viết cho 89s52,nên không có code cho avr nhưng đại thể cách làm như sau:
                1-thiết lập cho timer khoảng 100 nhịp tràn 1 lần
                2-trong ngắt timer0 bạn tăng giá trị 1 biến đếm và kiểm tra xem mỗi lần nó tràn từ ff-->0 thì set 8 port bạn muốn dùng làm chân pwm
                3-tiến hành so sánh biến đếm trên với 1 biến khác tạm gọi là pwm1 nếu bằng thì clear port out pwm1 --->tiến hành so sánh với biến pwm2.... pwmxxx
                * nếu bạn muốn tăng tần số pwm thì có thể thiết lập cho timer tràn nhanh hơn nhưng cpu sẽ bận hơn.cách 2 là khống chế cho biến đếm tăng đến 50,100,150..quay về đếm lại từ 0 nhưng khi đó độ phân giải chỉ còn 50-100.với thông số trên + dùng thạch anh 10MHz bạn có tần số gần 400Hz

                Comment


                • #9
                  Dùng Timer mà PWM, bác thích ra mấy ngõ mà chẳng được...
                  *** Thành viên không biết gì về điện ***

                  Comment


                  • #10
                    ừa... thằng AVR nào có timer mà chả tạo được PWM...
                    đồng chí T cứ cho cho 1 thằng đêm, tạo ra mấy anh so sánh, lơn hơn out 1, nhỏ hơn cho out 0, đại loại như vậy nà ô cờ rê mà. Có điều tần số cao quá thì nó kiém thoi...
                    nhờ!
                    Nguy hiểm của tuổi già là cháy nổ gì chả có phản ứng!

                    Comment


                    • #11
                      nhiều ngõ ra PWM

                      Tôi đã lập trình rồi và thấy ok
                      tức là bạn chỉ cần một timer cho 6 hoặc bao nhiêu bô PWM mà bạn muốn dùng .khi bạn dùng thanh ghi OCRx ,các giá trị out cho các chân ra sẻ có ở các thanh ghi trạng thái .do đó khi bạn muốn thiết lập cho thêm cổng ra của PWM .bạn có thể so sánh giá của thanh ghi OUT cua OCRx mà bạn dùng rồi đặt giá đó cho chân ma bạn muốn có thêm

                      Comment


                      • #12
                        Nếu như mấy bác nói tạo so sánh em nghĩ xung sẽ ko chuẩn như việc dùng PWM thẳng từ timer đâu , nhất định phải có delay time. Dùng kiểu này chỉ cần 1 timer cũng đủ sống
                        Cái gì người khác làm được , mình cũng làm được !

                        Comment


                        • #13
                          tui thấy cần nhiều PWM nhiều thì chủ yếu là quét led RGB thôi ! tui quét led RGB tới 32 con mà vẫn chỉ xài có 1 em timer thui ! chạy cool lun !

                          Comment


                          • #14
                            PWM thì cuối cùng cũng chỉ là on với off thôi ạ, tùy theo mức chính xác, chứ nếu phiên phiến, delay, cũng ổn chán

                            Comment


                            • #15
                              Mình sử dụng thạch anh 4Mhz cho atmega8 nhưng khi giả lập 8 kênh PWM thì led hiển thị bị giật dữ lắm!
                              các bạn ơi! khắc phục như thế nào các bạn giúp mình nhé!

                              Comment

                              Về tác giả

                              Collapse

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

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

                              Collapse

                              Đang tải...
                              X