View Single Post
Old 05-04-2009, 05:40 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 phandinh View Post
mình đang làm giao tiếp pc <--> pic dùng vb6
đoạn code sau đơn giản chỉ khi nào nhận được data thì đảo trang thái portB.
việc nhận có xảy ra , nhưng nó lai ko thoát ngắt được (cứ đảo portB). mong mọi người giúp
///////////////////////////////////////////////////////////////
...
#INT_rda
void ngat_rs232()
{
portb = ~ portb; /// neu xay ra ngat rs_232 thi dao portb

}
...
Tôi cho là vấn đề nằm ở phần code xử lý ngắt của bạn. Về nguyên tắc, trong code xử lý ngắt nhận của module USART, bạn phải đọc thanh ghi đệm RCREG để xóa cờ ngắt RCIF (đây là cách duy nhất để xóa cờ này). Code của bạn chưa thực hiện việc đọc dữ liệu từ thanh ghi RCREG, do đó cờ ngắt RCIF không được xóa sau khi bạn thoát khỏi chương trình xử lý ngắt, dẫn đến ngắt xuất hiện một cách liên tụ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
namqn vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn