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

Trả lời
 
Ðiều Chỉnh Xếp Bài
Old 01-01-2010, 03:58 AM   #1
vinhlec4
Banned
 
Tham gia ngày: Dec 2009
Bài gửi: 65
:
giup e voi

e doc datasheet nhung thấy các ký hiẹu tre các chan cua pic 4331 pic kac 8051 nhieu qua? e k hieu bam xung thi ho tro nhu the no? pwm? các chan nào hổ trơ pwm?
các bác giúp voi, ccp1 ccp2 la như the nao?
vinhlec4 vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 01-01-2010, 09:27 AM   #2
vutru
Nhập môn đệ tử
 
Tham gia ngày: Dec 2009
Bài gửi: 5
:
Smile co ban ve pic

Trích:
Nguyên văn bởi vinhlec4 View Post
e doc datasheet nhung thấy các ký hiẹu tre các chan cua pic 4331 pic kac 8051 nhieu qua? e k hieu bam xung thi ho tro nhu the no? pwm? các chan nào hổ trơ pwm?
các bác giúp voi, ccp1 ccp2 la như the nao?
minh cũng đang tìm hiểu pic nhưng thấy khác avr chưa hiểu lắm mong mọi người giúp đỡ
vutru vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 01-01-2010, 04:51 PM   #3
minhcuong1122
Đệ tử 1 túi
 
Tham gia ngày: Jan 2009
Bài gửi: 17
:
Sao bạn không cho mọi người biết bạn đã biết những gì nhỉ. Chắc bạn đã xem datasheet rồi đúng hok, trong phần PWM có một cái hình gồm thanh ghi PR2, TMR2, CCPRxH, CCPRxL. Hãy nhìn kĩ cái hình đó đi.
Hãy hình dung đơn giản vầy thôi.
Bạn nạp giá trị cho PR2 để timer2 đếm, khi đến PR2+1 thì nó tràn, bộ so sánh sẽ so giá trị đếm trong TMR2 với PR2 để biết khi nào nó tràn. Khi timer2 tràn thì bộ so sánh sẽ xuất tín hiệu set ngõ ra xung PWM lên [1], tự nạp lại giá trị cho PR2. Thời gian giữa 2 lần set xung như vậy là một chu kì xung PWM (PWM period)
Vậy còn PWM duty ? PWM DUTY là thời gian mà xung giữ mức [1] tính từ khi bắt đầu 1 chu kì xung mới. Hết PWM duty thì xung ngõ ra sẽ về lại [0]. Duty được tính theo công thức trong datasheet, bạn cần nạp giá trị này vào thanh ghi 10 bits ghép bởi CCPRxH và 2 bit timer2 prescaler (xem lại cái hình nhá)
Hồi nãy khi bắt đầu chu kì mới thì TMR2 trở về 0 và set ngõ ra lên [1]. Bộ so sánh sẽ so TMR2 với thanh ghi duty, khi TIMR2 đếm tới giá trị duty thì xuất ngõ ra về [0]. TIMER2 vẫn đếm tiếp đến khi bằng PR2 thì lại tràn... set lại xung lên 1 và.........cứ vậy...
Vậy nên việc cần làm để tạo xung PWM bằng module có sẵn là:
Khai báo timer 2, bộ chia timer2, nạp giá trị cho PR2 (tính theo công thức để có period bạn cần).
Khai báo bộ so sánh ở chế độ PWM
Nạp giá trị cho thanh ghi duty (lại tính )
CCS có sẵn hàm setup_timer_2() để khai báo timer2, setup_ccp1() hoặc setup_ccp2() để khai báo chức năng PWM cho bộ so sánh (tùy bạn muốn CCP mấy 1 hoặc 2), set_pwm1_duty() để chọn duty (giá trị tính ra từ công thức)(cũng tùy PWm1 hoặc 2), và set_timer2(0); để cho timer2 bắt đầu đếm.
và nhớ còn một điều nữa, chân xuất xung là CCP1 hoặc CCP2, nằm ở port C nên phải set các chân này là ngõ ra nhá.

Bạn nên cho mọi người biết mình đã tìm hiểu tới đâu nhé để họ biết nên bắt đầu giúp từ đâu. (Hi, nhỡ bạn là cao thủ thì lại... múa rìu.. qua mắt thợ.) Mong giúp được bạn gì đó.
Thân.

thay đổi nội dung bởi: minhcuong1122, 01-01-2010 lúc 05:22 PM.
minhcuong1122 vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 02-01-2010, 08:34 AM   #4
vinhlec4
Banned
 
Tham gia ngày: Dec 2009
Bài gửi: 65
:
a oi cho e hoi ham get_timer trong pic có ý nghĩa j a? nó hoạt dộng kác ham delay cho nao a?
vinhlec4 vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 02-01-2010, 12:58 PM   #5
minhcuong1122
Đệ tử 1 túi
 
Tham gia ngày: Jan 2009
Bài gửi: 17
:
Returns the count value of a real time clock/counter. RTCC and Timer0 are the same. All timers count up. When a timer reaches the maximum value it will flip over to 0 and continue counting (254, 255, 0, 1, 2...).

Hàm này đâu phải tạo ra thời gian trễ đâu bạn, đừng nhầm chứ. Nó chỉ trả về giá trị đếm hiện tại của timer. Tùy bạn sử dụng nó để làm gì thôi.
minhcuong1122 vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Trả lờ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à 08:14 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