![]() |
|
Tài trợ cho PIC Vietnam |
Cơ cấu chấp hành (Actuator) Động cơ DC, AC, động cơ không chổi than, động cơ không cảm biến... |
![]() |
|
Ðiều Chỉnh | Xếp Bài |
|
![]() |
#1 | |
Trưởng lão PIC bang
|
Trích:
Thân,
__________________
Biển học mênh mông, sức người có hạn. Đang gặp vấn đề cần được giúp đỡ? Hãy dành ra vài phút đọc luồng sau: http://www.picvietnam.com/forum/showthread.php?t=1263 |
|
![]() |
![]() |
![]() |
#2 | |
Đệ tử 6 túi
Tham gia ngày: Oct 2008
Nơi Cư Ngụ: HCM
Bài gửi: 137
: |
Trích:
// For a 20 mhz clock, 1.2 khz frequency, // t2DIV set to 16 // the following sets the duty to 50% (or 416 us). long duty; duty = 520; // .000416/(16*(1/20000000)) set_pwm1_duty(duty); con số 240 em tính ở trên là dựa vào cách tính số 520 như hướng dẫn. hướng dẫn chỉ nói là sẽ thêm 2 bit 0 vào phía lsb chứ không nói rõ là thêm 2 bit 0 vào thì duty phải tính lại như thế nào? sẳn anh Namqn cho em hỏi lun là phải tính như thế nào để ra được con số 64 vậy anh?loay quay mấy ngày rùi mà vẫn chưa mò ra được.
__________________
A&A |
|
![]() |
![]() |
![]() |
#3 | |
Trưởng lão PIC bang
|
Trích:
Nếu bạn khai báo một biến để chứa duty cycle, trình biên dịch sẽ theo kiểu dữ liệu của biến mà xác định giá trị duty cycle là 8-bit hay 16-bit. Nhưng nếu bạn chỉ đưa một giá trị hằng 250 thì trình biên dịch sẽ tự hiểu là giá trị 8-bit (trong khi có thể bạn đang muốn mô tả một giá trị 16-bit). Chú ý là nếu bạn đưa giá trị hằng 520 vào thì trình biên dịch vẫn hiểu rằng đó là một giá trị 16-bit, vì 520 không thể chứa trong 8-bit. Còn cách tính ra số 64 thì rất đơn giản. Nếu giá trị duty cycle là 8-bit, giá trị ứng với duty cycle = 100 % sẽ bằng giá trị thiết lập của timer cộng với 1 (127 + 1 = 128 trong ví dụ ở post #2 của bạn). Do đó duty cycle = 50 % sẽ ứng với giá trị thiết lập = 128/2 = 64. Thêm 2 bit '0' vào LSB của duty cycle có nghĩa là giá trị mà bạn mô tả cho duty cycle sẽ được dịch trái 2 vị trí, do đó nó (giá trị mà bạn mô tả) sẽ được so sánh với thanh ghi TMR2, chứ không còn so sánh với tổ hợp thanh ghi TMR2 và 2 Q-bit. Nói cách khác, độ phân giải duty cycle mà bạn có thể dùng sẽ bằng với độ phân giải của tần số, chứ không còn là 4 lần của độ phân giải đó như bình thường. Thân,
__________________
Biển học mênh mông, sức người có hạn. Đang gặp vấn đề cần được giúp đỡ? Hãy dành ra vài phút đọc luồng sau: http://www.picvietnam.com/forum/showthread.php?t=1263 thay đổi nội dung bởi: namqn, 30-05-2009 lúc 05:25 PM. |
|
![]() |
![]() |
![]() |
#4 | |
Đệ tử 6 túi
Tham gia ngày: Oct 2008
Nơi Cư Ngụ: HCM
Bài gửi: 137
: |
Trích:
__________________
A&A |
|
![]() |
![]() |
![]() |
#5 | |
Trưởng lão PIC bang
|
Trích:
Thân,
__________________
Biển học mênh mông, sức người có hạn. Đang gặp vấn đề cần được giúp đỡ? Hãy dành ra vài phút đọc luồng sau: http://www.picvietnam.com/forum/showthread.php?t=1263 |
|
![]() |
![]() |
![]() |
#6 |
Đệ tử 6 túi
Tham gia ngày: Oct 2008
Nơi Cư Ngụ: HCM
Bài gửi: 137
: |
Vậy anh Namqn có thể cho e hỏi là băm xung ở tần số thấp và cao thì cái nào chính xác hơn?
chứ em băm xung ở tần số 1.2kHz nhưng sao không chính xác anh Namqn ơi?tỉ lệ tính ra không như mình tính toán.
__________________
A&A |
![]() |
![]() |
![]() |
#7 | |
Trưởng lão PIC bang
|
Trích:
Bạn kiểm tra xung kết quả như thế nào mà nói rằng nó không chính xác? Liệu có phải do mạch động lực của bạn có vấn đề không? Nếu bạn là sinh viên khoa Điện, ĐHBK HCM thì có thể gặp trực tiếp tôi (tôi đã về VN, và đang giảng dạy tại khoa Điện, ĐHBK HCM). Thân,
__________________
Biển học mênh mông, sức người có hạn. Đang gặp vấn đề cần được giúp đỡ? Hãy dành ra vài phút đọc luồng sau: http://www.picvietnam.com/forum/showthread.php?t=1263 |
|
![]() |
![]() |
![]() |
Ðiều Chỉnh | |
Xếp Bài | |
|
|