|
Tài trợ cho PIC Vietnam |
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 |
|
Ðiều Chỉnh | Xếp Bài |
09-01-2008, 12:23 PM | #1 |
Nhập môn đệ tử
Tham gia ngày: Jul 2005
Bài gửi: 9
: |
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 ! |
09-01-2008, 06:08 PM | #2 | |
Trưởng lão PIC bang
|
Trích:
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 |
|
09-01-2008, 06:56 PM | #3 |
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 |
09-01-2008, 10:34 PM | #4 |
Trưởng lão PIC bang
|
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 |
09-01-2008, 10:51 PM | #5 |
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 . |
09-01-2008, 11:03 PM | #6 | |
Trưởng lão PIC bang
|
Trích:
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 |
|
10-01-2008, 11:50 AM | #7 |
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
|
|
|