PIC Vietnam

Go Back   PIC Vietnam > Microchip PIC > Các ngôn ngữ lập trình khác (CCS C, HT PIC,...) > Lỗi lập trình ngôn ngữ cấp cao

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

Lỗi lập trình ngôn ngữ cấp cao Những lỗi trường gặp trong lập trình. Khóa luồng khi bug được lỗi.

 
 
Ðiều Chỉnh Xếp Bài
Prev Previous Post   Next Post Next
Old 21-01-2010, 12:55 AM   #5
minhcuong1122
Đệ tử 1 túi
 
Tham gia ngày: Jan 2009
Bài gửi: 17
:
Trong này có đề cập tới 2 bit cuối thêm vào TMR2 (prescaler) để cũng tạo thành một giá trị 10 bits, giá trị này được so với cái value (CCPRxH . CCPxCON<5:4>) để khi nào bằng nhau thì clear chân CCPx.
E thật tình không hiểu nỗi tại sao giá trị (2bit LSB của 10bit mình tính ra) lại liên quan được với prescaler của timer 2 ???

Thêm nữa,
Công thức tính PWM chu kì:
PWM period = [(PR2) + 1] • 4 • TOSC • (TMR2 prescale value), specified in units of time
Công thức tính duty:
PWM duty cycle = (DCxB9 : DCxB0 bits value) • Tosc • (TMR2 prescale value), in units of time
Theo e hiểu, xung thạch anh phải qua bộ chia 4, rồi qua thêm bộ chia TMR2 thì mới làm cho TMR2 tăng lên 1 đơn vị, khi TMR2 tăng lên bằng (PR2+1) thì hết 1 chu kì
Còn ở phần duty thì công thức đã không còn số "4", thay vào đó thì hình như số 4 này đã nằm đâu đó trong giá trị thanh ghi 10 bits mình tính ra rồi???
E thấy có gì đó khó hiểu chỗ này, hình như việc sử dụng 2 bit này có ý đồ gì đó, các anh chị giúp e nhé.
@A Nam: Cảm ơn a Nam một lần nữa.
minhcuong1122 vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
 

Ðiều Chỉnh
Xếp Bài

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à 06:35 PM.


Đượ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