PIC Vietnam

Go Back   PIC Vietnam > Microchip PIC > dsPIC - Bộ điều khiển tín hiệu số 16-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

dsPIC - Bộ điều khiển tín hiệu số 16-bit Theo dự kiến của Microchip, vào khoảng năm 2011 dsPIC sẽ có doanh số lớn hơn PIC

Trả lời
 
Ðiều Chỉnh Xếp Bài
Old 09-01-2008, 12:23 PM   #1
photoman
Nhập môn đệ tử
 
Tham gia ngày: Jul 2005
Bài gửi: 9
:
Angry Thắc mắc về ngắt ngoài

Mình đang dùng con dsPic30f4011 ,đến phần ngắt ngoài của nó thì thậy có điểm lạ như sau :

void Init_INT2(void)
{
_INT2IF=0;
_INT2EP=1;
_INT2IE=1;
}

void Init_PortsForINT2(void)
{
_TRISD1=0;
_LATD1=0;
}

trên đây là hai hàm dùng để thiết lập port và ngắt cho INT2 , _INT2EP là bit chọn sườn ngắt (lên hoặc xuống) . Điều lạ là với cùng một giá trị của LATD1 thì việc thay đổi _INT2EP không có tác động gì :
_LATD1=0 --> sườn tác động luôn là sườn lên.
_LATD1=1 --> sườn tác động luôn là sườn xuống.

Nếu vậy thì bit _INT2EP có ý nghĩa gì nhỉ ?
Thêm một điểm nữa em thấy dsPic rất vô lý khi muốn kiểm tra một đầu vào thì phải đặt nó là đầu ra ( _TRISD1=0 nghe nó chả logic gì cả .

Các bác làm ơn giải thích giùm em mấy cái trên với. Thanks lot !
photoman vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 09-01-2008, 06:08 PM   #2
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 photoman View Post
Mình đang dùng con dsPic30f4011 ,đến phần ngắt ngoài của nó thì thậy có điểm lạ như sau :

void Init_INT2(void)
{
_INT2IF=0;
_INT2EP=1;
_INT2IE=1;
}

void Init_PortsForINT2(void)
{
_TRISD1=0;
_LATD1=0;
}

trên đây là hai hàm dùng để thiết lập port và ngắt cho INT2 , _INT2EP là bit chọn sườn ngắt (lên hoặc xuống) . Điều lạ là với cùng một giá trị của LATD1 thì việc thay đổi _INT2EP không có tác động gì :
_LATD1=0 --> sườn tác động luôn là sườn lên.
_LATD1=1 --> sườn tác động luôn là sườn xuống.

Nếu vậy thì bit _INT2EP có ý nghĩa gì nhỉ ?
Thêm một điểm nữa em thấy dsPic rất vô lý khi muốn kiểm tra một đầu vào thì phải đặt nó là đầu ra ( _TRISD1=0 nghe nó chả logic gì cả .

Các bác làm ơn giải thích giùm em mấy cái trên với. Thanks lot !
Bạn cũng không có lý lắm khi chỉ đưa code mà không cho biết mạch phần cứng ra sao, và code trên được lấy từ đâu.

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 09-01-2008, 06:56 PM   #3
photoman
Nhập môn đệ tử
 
Tham gia ngày: Jul 2005
Bài gửi: 9
:
Ấy .Chỉ là kiểm tra ngắt ngoài là chân D1 để thử nghiệm thôi mà ,với lại mạch em chỉ có thach anh với jump thui .Hi Hi .
Code trên là do em tự viết . Tất cả code đều chỉ có thế với hàm xử lý ngắt nữa thui , em thấy không quan trọng nên không copy lên .
Mong bác giải đáp giùm em
photoman vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 09-01-2008, 10:34 PM   #4
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
Bạn đã thử với _TRISD1 = 1 chưa?

Khi đặt _TRISD1 = 0, làm thế nào bạn tạo ra xung ngắt tại chân D1? Bạn có thực hiện thao tác gì trong main() khô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
namqn vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 09-01-2008, 10:51 PM   #5
photoman
Nhập môn đệ tử
 
Tham gia ngày: Jul 2005
Bài gửi: 9
:
_TRISD1 = 1 thì ngắt sảy ra liên tục không thể kiểm soát được .
Còn khi đặt _TRISD1=0 , em tạo xung ngát bằng cách dùng dây châm +5v hoặc 0v vào pin D1 thôi .
Hàm main() em hiển thị LCD , trong ngắt em đặt một biến để đếm số lần ngắt rôig hiển thị biến đó ra LCD .
photoman vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 09-01-2008, 11:03 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 photoman View Post
_TRISD1 = 1 thì ngắt sảy ra liên tục không thể kiểm soát được .
Còn khi đặt _TRISD1=0 , em tạo xung ngát bằng cách dùng dây châm +5v hoặc 0v vào pin D1 thôi .
Hàm main() em hiển thị LCD , trong ngắt em đặt một biến để đếm số lần ngắt rôig hiển thị biến đó ra LCD .
Tôi đoán ra bạn đã dùng cách đó để tạo ngắt khi đặt _TRISD1=0 (làm cách đó dễ làm hỏng chân của vi mạch lắm). Từ thông tin rằng với _TRISD1 = 1 thì dsPIC bị ngắt liên tục, tôi cho rằng chân D1 đang bị nhiễu mạnh. Bạn nên dùng một điện trở khoảng vài k để kéo lên/kéo xuống chân D1, kết hợp với một nút nhấn nối thích hợp vào chân D1 để tạo xung ngõ vào. Có lẽ bây giờ bạn hiểu rằng vì sao tôi đề nghị bạn cho biết mạch phần cứng. Nếu bạn không chịu khó vẽ một mạch nguyên lý cho phần cứng đang dùng để thử nghiệm, và post lên diễn đàn, những người đang tìm cách giúp bạn như tôi sẽ phải giả thiết rất nhiều điều, và sẽ gặp nhiều khó khăn để chỉ ra cho bạn những chỗ không ổn.

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 10-01-2008, 11:50 AM   #7
photoman
Nhập môn đệ tử
 
Tham gia ngày: Jul 2005
Bài gửi: 9
:
cám ơn bác namqn đã giúp đỡ. ĐÚng là trong mạch em không có điện trở treo vào các chân vdk . Trong lập trình em khắc phục bằng cách đặt _TRIS=0 và cho LAT=1 để kiểm tra mức 0 ở ngõ vào . Bây giờ mọi vấn đề đã được giải quyết . zui wa' ha ha
photoman 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:09 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