View Single Post
Old 15-01-2009, 06:03 PM   #25
ham_hoc_hoi
Đệ tử 1 túi
 
Tham gia ngày: Dec 2008
Bài gửi: 25
:
Trích:
Nguyên văn bởi namqn View Post
Khi có ngắt nhận ký tự ở dsPIC, bạn chỉ tăng biến đếm chứ không lấy ký tự ra khỏi bộ đệm của UART. Bạn nên tạo một bộ đệm ở dsPIC, khi có ký tự là lấy ngay ra khỏi bộ đệm (giả sử bộ đệm là buff[], trong đoạn code xử lý ngắt bạn thực hiện buff[i] = U2RXREG, i cần được khởi tạo trước đó).

Nên xóa cờ ngắt sau khi đã phục vụ xong ngắt, thay vì ngay đầu code xử lý ngắt. Cách đơn giản để phản hồi về PC của bạn là khi vào code xử lý ngắt, bạn đọc được ký tự nào thì gửi ngược ký tự đó về PC. Ví dụ, U2TXREG = buff[i].

Bộ đệm của UART trong dsPIC chỉ chứa được 4 ký tự, do đó bạn chỉ nhận được 4 ký tự đầu tiên (các ký tự sau đó sẽ bị dsPIC bỏ qua, vì lý do tràn bộ đệm, mời bạn xem lại các tài liệu đã được tôi đề cập trong tutorial). Cũng mời bạn đọc lại tutorial của tôi.

Những gì tôi vừa nêu trên đã được đề cập trong tutorial.

Thân,
thế để mình nhận được nhiều hơn 4 kí tự thì mình phải cóa bọ đêm đi hả bac, hay làm như thế nào ah.
Còn khi em tr 1 lúc 12 byte thì sao chỉ xảy ra có 2 lần ngắt ah
ham_hoc_hoi vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn