PIC Vietnam

Go Back   PIC Vietnam > Microchip PIC > dsPIC - Bộ điều khiển tín hiệu số 16-bit > Câu hỏi dsPIC thường gặp

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

Câu hỏi dsPIC thường gặp Những vấn đề liên quan tới dsPIC30 và dsPIC33 và PIC24

Trả lời
 
Ðiều Chỉnh Xếp Bài
Old 11-08-2007, 01:21 PM   #1
Musea
Nhập môn đệ tử
 
Tham gia ngày: Aug 2007
Bài gửi: 4
:
Tính thời gian tràn cho Timer?

Em mới học cái này, thấy anh namnq có gửi lên máy bài tutorial, em thắc mắc một chút:
1. Thời gian tràn của timer tính như thế nào?
Trong ví dụ,
void Init_TMR1(void) {
TMR1 = 0; //Xoa so dem trong TMR1
PR1 = 0xF424; //Nguong tran la 0,5 giay tuong ung
//voi clock = 32 MHz
_T1IF = 0; //Xoa co ngat cua Timer 1
T1CON = 0x8020; //Dung fcy lam clock, prescale = 1:64
_T1IE = 1; //Cho phep ngat Timer 1
Cái số 0xF424 kia tính thế nào để ra được là tràn 0.5s. Có công thức tính ko?
2. Prescale là gì? Công dụng của nó ra sao?

Có mấy câu hỏi, ai biết chỉ dùm em với.
Musea vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 11-08-2007, 02:07 PM   #2
bien_van_khat
...Damned...
 
bien_van_khat's Avatar
 
Tham gia ngày: Apr 2006
Nơi Cư Ngụ: Hồ Chí Minh
Bài gửi: 522
:
Prescaler là bộ chia trước. Trước khi xung nhịp được đưa vào cho bộ đếm, thì nó đã được chia, ở ví dụ trên là chia 64.

Với clock = 32MHz, tốc độ chip sẽ là 8MIPS (trừ dòng pic33, pic24), do đó chu kỳ lệnh (Tcy) là 125ns.

Vì timer tràn khi giá trị timer = với giá trị trong thanh ghi period, nên thời gian tràn của timer sẽ được tính:
T = Tcy * prescaler * period = (125e-9 * 64 * 62500) = 0.5s
__________________
- Xin đọc trước khi post bài

Xin đặt code trong thẻ [ code ] [ /code ]
bien_van_khat vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 11-08-2007, 05:51 PM   #3
namqn
Trưởng lão PIC bang
 
Tham gia ngày: Feb 2006
Nơi Cư Ngụ: Tp. HCM, Việt Nam
Bài gửi: 3,025
:
Send a message via Yahoo to namqn
Trích:
Nguyên văn bởi Musea View Post
Em mới học cái này, thấy anh namnq có gửi lên máy bài tutorial, em thắc mắc một chút:
1. Thời gian tràn của timer tính như thế nào?
Trong ví dụ,
void Init_TMR1(void) {
TMR1 = 0; //Xoa so dem trong TMR1
PR1 = 0xF424; //Nguong tran la 0,5 giay tuong ung
//voi clock = 32 MHz
_T1IF = 0; //Xoa co ngat cua Timer 1
T1CON = 0x8020; //Dung fcy lam clock, prescale = 1:64
_T1IE = 1; //Cho phep ngat Timer 1
Cái số 0xF424 kia tính thế nào để ra được là tràn 0.5s. Có công thức tính ko?
2. Prescale là gì? Công dụng của nó ra sao?

Có mấy câu hỏi, ai biết chỉ dùm em với.
Với câu hỏi 1, tôi đã trả lời ở luồng sau:

http://www.picvietnam.com/forum//showthread.php?t=974

Câu hỏi 2 thì bien_van_khat đã trả lời rồi.

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
namqn vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 11-08-2007, 06:58 PM   #4
Musea
Nhập môn đệ tử
 
Tham gia ngày: Aug 2007
Bài gửi: 4
:
Cảm ơn các anh nhiều lắm.
Musea vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 11-08-2007, 07:10 PM   #5
Musea
Nhập môn đệ tử
 
Tham gia ngày: Aug 2007
Bài gửi: 4
:
còn 1 vấn đề nữa, nếu clock là 32MHz, làm sao suy ra được tốc độ chip là 8MIPS?
Musea vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 11-08-2007, 08:15 PM   #6
namqn
Trưởng lão PIC bang
 
Tham gia ngày: Feb 2006
Nơi Cư Ngụ: Tp. HCM, Việt Nam
Bài gửi: 3,025
:
Send a message via Yahoo to namqn
Trích:
Nguyên văn bởi Musea View Post
còn 1 vấn đề nữa, nếu clock là 32MHz, làm sao suy ra được tốc độ chip là 8MIPS?
dsPIC30F dùng 4 xung clock cho 1 lệnh, do đó số MIPS (triệu lệnh/giây) = tần số clock (tính bằng MHz)/4.

PIC24 và dsPIC33F dùng 2 xung clock cho 1 lệnh, như vậy số MIPS (triệu lệnh/giây) = tần số clock (tính bằng MHz)/2.

Câu hỏi của bạn cho thấy bạn chưa hiểu lắm về vi điều khiển, cũng như chưa biết cách diễn dịch những thông tin trong datasheet (ví dụ, trong datasheet của dsPIC30F4012 tại bảng 24-16, chú ý số 3 có nói 'there are 4 Q clocks per instruction cycle'). Đề nghị bạn xem lại những vấn đề cơ bản trước khi chuyển sang dùng dsPIC.

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, 15-07-2008 lúc 06:14 PM.
namqn vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Trả lời

Ð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à 11:59 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