Thông báo

Collapse
No announcement yet.

xin hỏi về duty cycle trong pic18F4431

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

  • xin hỏi về duty cycle trong pic18F4431

    Theo như em được biết thì thanh ghi PTPERL sẽ quyết định chu kỳ của xung,em sử dụng bộ dao động ngoài 20MHz,muốn sử dụng xung PWM có tần số 10 KHz ,em tính như sau :

    Fpwm = Fosc / 4 /((PTPER + 1) x PTMRPS)

    Fosc là tần số bộ dao động ngoài Fpwm tần số xung PWM

    ==>PTPER = Fosc/(4*Fpwm*PTMRPS) - 1

    PTMRPS = prescale (o day 1 : 4) ,Free-Running mode

    PTCON0 = 0x04

    PTPERL = 0x7C;
    deadtime = 0.5 us

    bây giờ em muốn tính giá trị cho PDCxH và PDCxL để duty cycle = 100% (x là 1 trong 4 PWM),trong mục 17.6 của datasheet em đọc vẫn chưa hiểu rõ lắm vì tiếng anh kém.

    1.em vẫn không hiểu tại sao phải có PDCxH và PDCxL mà không phải chỉ cần PDCx
    2.theo em biết duty cycle = 100% <=> PDCx = 2 x PTPERL,nhưng áp dụng trên proteus thì xung thu được ở mức cao không quá 50% , đưa các giá trị vào thanh ghi PDC0 như sau
    PDC0H = 0;
    PDC0L = 248;

    sau 1 hồi thử tới thử lui,em có nhận xét :
    _nếu PDC0H = 0; ,xung ở mức cao từ chân PWM1 thay dổi từ 0->50% nếu PDC0L thay đổi từ 0 -> 2 x PTPERL
    _nếu PDC0H = 1; ,xung ở mức cao từ chân PWM1 thay dổi từ 50->100% nếu PDC0L thay đổi từ 0 -> 2 x PTPERL
    _nếu PDC0H > 1;xung ở mức cao từ chân PWM1 = 100%

    Em không hiểu tại sao lại như vậy??

    Mong được sự giúp đỡ của mọi người,em xin chân thành cảm ơn
    Last edited by vagabondtt; 05-07-2009, 10:41.
    Email:
    Skype: thanhtruong0315

  • #2
    Bạn tham khảo cái này xem sao...http://209.85.12.237/30003/69/0/p1040425/pwm.html

    Hotmail: tien168bn.utehy@hotmail.com
    Gmail: tien168bn.utehy@gmail.com

    Comment

    Về tác giả

    Collapse

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

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

    Collapse

    Đang tải...
    X