![]() |
|
Tài trợ cho PIC Vietnam |
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 |
![]() |
|
Ðiều Chỉnh | Xếp Bài |
|
![]() |
#1 |
...Damned...
Tham gia ngày: Apr 2006
Nơi Cư Ngụ: Hồ Chí Minh
Bài gửi: 522
: |
Code:
TRISB=0b11111110; // Chan B0 la input Bạn chú ý, để code trong thẻ [ code ] [ / code ] |
![]() |
![]() |
![]() |
#2 |
Đệ tử 6 túi
Tham gia ngày: Oct 2008
Nơi Cư Ngụ: HCM
Bài gửi: 137
: |
Mình có thể vừa dùng ngắt ngoài qua chân RB0 và ngắt timer0 cùng lúc được không các bạn?nếu được thì khi có tín hiệu ngắt này mà ngắt kia gọi thì sao?có ai biết không?
|
![]() |
![]() |
![]() |
#3 | |
Trưởng lão PIC bang
|
Trích:
Với PIC16, không có chế độ ưu tiên ngắt. Do đó, khi đang xử lý một ngắt nào đó, phần cứng của PIC16 sẽ tự động tắt bit GIE (gán bằng '0'), cấm tất cả các ngắt khác. Sau khi xử lý xong một ngắt, chương trình thoát khỏi ISR, bit GIE sẽ được phần cứng tự động bật bit GIE (gán bằng '1'), và các ngắt khác nếu đang còn chờ sẽ được xử lý. Việc ưu tiên xử lý ngắt nào được dành cho người viết code. Do đó, câu trả lời cho câu hỏi của bạn là được. Và phần trên đã giải thích những gì sẽ xảy ra khi đang xử lý một ngắt mà xuất hiện một ngắt khác. Bạn chỉ cần viết tất cả những phần code xử lý những ngắt được bật trong ISR thôi. Như đã nói ở trên, bạn là người quyết định ngắt nào được ưu tiên xử lý trước. 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 |
|
![]() |
![]() |
![]() |
|
|