PIC Vietnam

Go Back   PIC Vietnam > Microchip PIC > PIC32 - Bộ điều khiển tín hiệu số 32-bit

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

PIC32 - Bộ điều khiển tín hiệu số 32-bit Microchip công bố sản phẩm vi xử lý 32-bit ngày 06/11/2007

Trả lời
 
Ðiều Chỉnh Xếp Bài
Old 18-11-2008, 02:21 PM   #1
binhlt
Đệ tử 1 túi
 
Tham gia ngày: Dec 2006
Bài gửi: 19
:
Thắc mắc nhờ các cao thủ chỉ giúp

Tôi đang tập làm PIC32 bắt đầu với quyển sách "Programming 32-bit Microcontrollers in C: Exploring the PIC32 by Lucio Di Jasio" trong quá trình làm tôi dùng MPLAB SIM để debug nhưng với đoạn code sau: (trong ví dụ phần thứ 2 ngày thứ 7 của quyển sách trên)

OpenTimer45(T4_ON | T4_SOURCE_INT, 0);
// clear the 32-bit timer count
WriteTimer45(0);
FFT();
// read the timer count
t1111 = ReadTimer45(); //t1111 luôn =0 là sao????????????????

không hiểu sao t1111 luôn trả về giá trị = 0. Các bác đi trước có kinh nghiệm xin chỉ giúp. Tôi cũng up luôn cả phần ví dụ đó lên đây nếu tiện các bác xem hộ. Thanks
File Kèm Theo
File Type: rar Running.rar (52.9 KB, 7 lần tải)
binhlt vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 18-11-2008, 04:28 PM   #2
herrtien
Banned
 
Tham gia ngày: Nov 2006
Bài gửi: 107
:
Bạn chỉ cần đặt trước PR4 với giá trị phù hợp là được. Chúc thành công!
herrtien vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 21-11-2008, 11:22 AM   #3
binhlt
Đệ tử 1 túi
 
Tham gia ngày: Dec 2006
Bài gửi: 19
:
Đã thương thì thương cho trót bạn có thể cho biết PR4 phải đặt bằng bao nhiêu không? Theo mình thì MPLAB SIM không debug được giá trị trả về của time thì đúng hơn
binhlt vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 21-11-2008, 01:41 PM   #4
herrtien
Banned
 
Tham gia ngày: Nov 2006
Bài gửi: 107
:
PR=0x8000, chạy tốt với MPLAB SIM. Nếu bạn nói là không debug được với timer là sai. Bạn hãy thử lại xem.
herrtien vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 22-11-2008, 10:39 AM   #5
binhlt
Đệ tử 1 túi
 
Tham gia ngày: Dec 2006
Bài gửi: 19
:
Thực sự là vẫn không thể hiểu nổi. Đoạn code đó nếu mình chạy trên PIC32 Starter Kit thì đúng là lấy được t1111 nhưng chạy trên MPLAB SIM thì chỉ có giá trị = 0 kể cả đặt PR4=0x8000 như bạn nói. Nếu có thể bạn thử chạy cả đoạn code mình đã viết thử xem thì mới có thể nói chính xác được
binhlt vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 23-11-2008, 09:18 AM   #6
herrtien
Banned
 
Tham gia ngày: Nov 2006
Bài gửi: 107
:
Bạn thử lại đi nhé, tôi đã sửa đúng đoạn code của bạn và kết quả chạy tốt.
File Kèm Theo
File Type: rar Running.rar (60.9 KB, 16 lần tải)
herrtien vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 25-11-2008, 01:37 PM   #7
binhlt
Đệ tử 1 túi
 
Tham gia ngày: Dec 2006
Bài gửi: 19
:
Thanks bạn rất nhiều. Bạn đã rất nhiệt tình giúp mình
binhlt vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 25-11-2008, 02:24 PM   #8
binhlt
Đệ tử 1 túi
 
Tham gia ngày: Dec 2006
Bài gửi: 19
:
Nguyên nhân lúc đầu mình dùng MPLAB SIM không lấy được giá trị vì PR4 đặt sai chỗ (chắc do sự kết hợp của code = C và việc gán thẳng giá trị vào thanh ghi) từ đó rút ra kết luận là giá trị của PR4 phải được đặt sau lệnh OpenTimer45(); nếu start timer45 bằng T4CONSET=0x8000 thì không cần thiết phải đặt phía sau.
Cuối cùng vì timer45 là timer 32 bit nên PR4 cũng phải đặt là 32 bit ví dụ PR4 = 0xFFFFFFFF; // Load PR4 and PR5
binhlt 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à 02:40 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