Thông báo

Collapse
No announcement yet.

Công thức tính tần số PWM Sai ở đâu ??

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

  • Công thức tính tần số PWM Sai ở đâu ??

    chào các bác, em tính tần số pwm sử dụng chân cpp1 của pic 16f886 trên CSS. lệnh set ở dưới, tần số em mong muốn là 100Hz mà khi đo trên oscillo nó lại là 1,5kHz. mong các bác chỉ giáo
    setup_timer_2(T2_DIV_BY_16,196,16);
    Nguyễn Huy Biên - 01649 802 694
    gmail :

  • #2
    Nguyên văn bởi bienhou Xem bài viết
    chào các bác, em tính tần số pwm sử dụng chân cpp1 của pic 16f886 trên CSS. lệnh set ở dưới, tần số em mong muốn là 100Hz mà khi đo trên oscillo nó lại là 1,5kHz. mong các bác chỉ giáo
    setup_timer_2(T2_DIV_BY_16,196,16);
    Với lệnh set này thì tần số là :

    F = 20000000 / 16 / (196 + 1) = 1586 Hz.

    Comment


    • #3
      Nguyên văn bởi duong_act Xem bài viết
      Với lệnh set này thì tần số là :

      F = 20000000 / 16 / (196 + 1) = 1586 Hz.
      thế còn số lần tràn là 16 thỳ làm gì hả bác?
      Nguyễn Huy Biên - 01649 802 694
      gmail :

      Comment


      • #4
        Nguyên văn bởi bienhou Xem bài viết
        thế còn số lần tràn là 16 thỳ làm gì hả bác?
        Đấy là hệ số bộ chia sau. Trích :
        postscale is a number 1-16 that determines how many timer overflows before an interrupt: (1 means once, 2 means twice, and so on
        Tạm dịch :
        Postscale là một số từ 1 đến 16, xác định số lần timer tràn trước khi có một ngắt xảy ra. ( 1 được hiểu là 1 lần, 2 được hiểu là 2 lần và tương tự ....)
        Nếu postscale = 16 thì sau 16 lần timer2 tràn sẽ có 1 ngắt timer2 xảy ra.

        Comment


        • #5
          thanks bác nhiều nhé. em hiểu rồi
          Nguyễn Huy Biên - 01649 802 694
          gmail :

          Comment


          • #6
            ngày xưa viết CCS cũng không rành cai món này cũng nhờ bác duong_act chỉ giáo nên biết làm. mặc dù vây h không còn dùng cái này nữa.
            nói nôm na nếu TIMER(trong pic) làm việc ở chế độ timer (hay còn gọi là định thời-định thời gian sẽ xẩy ra sự kiện), nó sẽ lấy xung thạc anh bên ngoài/4(nếu gắn thạch anh thật 20M, thì tần số nhảy vào timer là 5M(0.2us), nếu khong prescale thì chỉ cần 0.2us x 256 là nó tràn ngay, còn prescale thì 0.2us x 256 x prescale. cái poscaler để nó làm thêm được n số lần tràn như thế.
            TamPhieuLuuKy@yahoo.com
            092 2838 712 --->>

            Comment


            • #7
              Nguyên văn bởi bienhou Xem bài viết
              thanks bác nhiều nhé. em hiểu rồi
              HT-PIC
              //____________ khoi tao PWM __________

              T2CON = 0b00000101; //de chan PWM1,2 lam viec, ty le chia 4
              CCP1CON = 0b00001100; //cho PWM1 sang
              CCP2CON = 0b00001100; //cho PWM2 sang
              PR2 = 155; //PWM Period = [(PR2) + 1] • 4 • TOSC •(TMR2 Prescale Value)=CHU KY CUA PWM
              //=155*4*(1/20*e6hz)*4=0.000125s==>f=8Khz

              // timer1
              T1CON = 0b00110001; //ty le chia 1:8 TMR1, bit0=1 cho phep TMR1
              TMR1ON = 1; //tat TMR1 di truoc khi lam gi do
              TMR1IE= 1;
              }
              ĐT : 01676455880

              Comment


              • #8
                Nguyên văn bởi quanghuy_125 Xem bài viết
                HT-PIC
                //____________ khoi tao PWM __________

                T2CON = 0b00000101; //de chan PWM1,2 lam viec, ty le chia 4
                CCP1CON = 0b00001100; //cho PWM1 sang
                CCP2CON = 0b00001100; //cho PWM2 sang
                PR2 = 155; //PWM Period = [(PR2) + 1] • 4 • TOSC •(TMR2 Prescale Value)=CHU KY CUA PWM
                //=155*4*(1/20*e6hz)*4=0.000125s==>f=8Khz

                // timer1
                T1CON = 0b00110001; //ty le chia 1:8 TMR1, bit0=1 cho phep TMR1
                TMR1ON = 1; //tat TMR1 di truoc khi lam gi do
                TMR1IE= 1;
                }
                dao động nội của con PIC chỉ có 4Mhz và 32k Hz đúng ko anh Huy nhỉ??
                Nguyễn Huy Biên - 01649 802 694
                gmail :

                Comment


                • #9
                  Nguyên văn bởi bienhou Xem bài viết
                  dao động nội của con PIC chỉ có 4Mhz và 32k Hz đúng ko anh Huy nhỉ??
                  Không phải vậy em ạ.
                  Dao động nội thì có dòng PIC có, có em lại không có.
                  Em xem datasheet xem!
                  ĐT : 01676455880

                  Comment


                  • #10
                    Trong chế độ PWM của modul ccp thì nó sử dụng timer 2 để định chu kỳ hay tần số xung phát ra.Timer2 có cái đặc biệt là có cả 2 bộ chia tần trước và sau prescaler và postcaler bộ chia tần trước để chia tần số xung đầu vào cấp cho bộ đếm timer2 nếu ta không sử dụng chia tần trước thì mặc định là Fosc/4.và cứ mỗi 4/Fosc(s) thì giá trị timer 2 tăng lên 1 đơn vị còn nếu sử dụng bộ chia tần tức là tăng thời gian đếm lên 1 đơn vị sẽ dài hơn =(4*prescaler)/fosc.Còn bộ chia sau postcaler thì nó thể hiện sau bao nhiêu lần timer tràn thì sẽ xảy ra ngắt(tmr2if=1),do đó bạn phải nhân thêm 16 nữa.

                    Comment

                    Về tác giả

                    Collapse

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

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

                    Collapse

                    Đang tải...
                    X