PIC Vietnam

Go Back   PIC Vietnam > Microchip PIC > Cơ bản về vi điều khiển và PIC

Tài trợ cho PIC Vietnam
Trang chủ Đăng Kí Hỏi/Ðáp Thành Viên Lịch Bài Trong Ngày Vi điều khiển

Cơ bản về vi điều khiển và PIC Những bài hướng dẫn cơ bản nhất để làm quen với vi điều khiển PIC

 
 
Ðiều Chỉnh Xếp Bài
Prev Previous Post   Next Post Next
Old 10-07-2009, 04:29 AM   #35
vagabondtt1503
Đệ tử 2 túi
 
Tham gia ngày: Dec 2008
Bài gửi: 33
:
Trích:
Nguyên văn bởi xuanhiendk2 View Post
Các bạn cho mình hỏi. Ví dụ chương trình viết như sau:
void main()
{ setup_power_pwm(PWM_CLOCK_DIV_4|PWM_FREE_RUN|PWM_D EAD_CLOCK_DIV_4,1,10000,400,0,1,0);
setup_power_pwm_pins(PWM_COMPLEMENTARY,PWM_COMPLEM ENTARY,PWM_COMPLEMENTARY,PWM_OFF);

while(true)
{
set_power_pwm0_duty(200);
//set_power_pwm1_duty(4000);
set_power_pwm2_duty(100);
//set_power_pwm3_duty(4000);
set_power_pwm4_duty(100);
}

}
Theo mình thì chương trình này sẽ tạo ra xung với chu kỳ là 400us và duty(theo mình là chu kỳ xung mức 1) là 200. Tuy nhiên khi mô phỏng mình thấy không phải thế. Giải thích hộ mình các tham số Time base, period, duty
Thanks!
bạn dùng phàn mềm nào để mô phỏng?

1.Theo ý kiến chủ quan của mình thì đa số các phần
mềm mô phỏng thường không đúng với thời gian thực,nó còn phụ thuộc vào CPU của máy tính đang sử dụng phần mềm mô phỏng nữa,với các ứng dụng về thời gian(chu kỳ) thì theo lời khuyên hầu hết mọi người trên diễn đàn thì làm mạch thật sẽ kiểm tra chính xác hơn.
2. Giải thích hộ mình các tham số Time base, period, duty . Vấn đề này bạn xem câu trả lời của anh namqn :
Trích:
Nguyên văn bởi namqn View Post
Bạn hiểu sai rồi. 0 đến 16383 là phạm vi giá trị cho phép đối với giá trị của tham số duty trong cú pháp trên.

Duty cycle của tín hiệu PWM là thời gian tín hiệu ở mức tích cực so với thời gian của toàn bộ chu kỳ. Ở đây, hàm chỉ đặt giá trị vào các thanh ghi PDCL và PDCH của module Power Control PWM trong PIC18Fxx31. Bạn cần phải xác định thời gian của toàn bộ chu kỳ nữa, nó được thiết lập thông qua các thanh ghi PTCON và PTPER (thiết lập prescale, postscale và chế độ chạy của timer dành riêng dùng làm time base cho module, và giá trị ngưỡng trong thanh ghi PTPER để quyết định thời gian của 1 chu kỳ).

Thư viện của CCS C cung cấp cho bạn các hàm để thuận tiện hơn trong việc viết code, nhưng bạn vẫn phải nắm rõ module mình đang dùng để có những thiết lập thích hợp. Trình biên dịch không thể thay bạn quyết định những tham số đó. Tôi đề nghị bạn đọc lại phần hướng dẫn của hàm setup_power_pwm, đảm bảo là bạn nắm rõ ý nghĩa của từng tham số trong hàm. Tôi cũng đề nghị bạn đọc lại phần 17 trong datasheet của PIC18F4431, nói về module Power Control PWM (tôi biết là nó dài, nhưng bạn đọc nó sẽ tốt hơn). Sau đó thử xác định xem với những gì bạn đã viết thì thời gian của 1 chu kỳ là bao nhiêu, và duty cycle tương ứng là bao nhiêu, nó có đúng như bạn đã thấy trong thực tế hay không.

Thân,
vagabondtt1503 vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
 


Quyền Sử Dụng Ở Diễn Ðàn
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is Mở
Smilies đang Mở
[IMG] đang Mở
HTML đang Tắt

Chuyển đến


Múi giờ GMT. Hiện tại là 03:29 AM.


Được sáng lập bởi Đoàn Hiệp
Powered by vBulletin®
Page copy protected against web site content infringement by Copyscape
Copyright © PIC Vietnam