PIC Vietnam

Go Back   PIC Vietnam > Truyền thông > Giao tiếp cổng COM và LPT

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

Giao tiếp cổng COM và LPT RS232, RS485 và LPT là những giao tiếp cơ bản và kinh điển khi mới học về vi điều khiển...

Trả lời
 
Ðiều Chỉnh Xếp Bài
Old 28-08-2008, 05:31 PM   #1
tungtot_vl
Đệ tử 6 túi
 
tungtot_vl's Avatar
 
Tham gia ngày: Jul 2007
Bài gửi: 154
:
cảm ơn 2 bạn nhiều. code của bạn minh tuan liệu có ổn không. nếu trong vòng lặp while(1) thời gian làm việc cho vòng này từ 5 đến 10 phút thì khi pc gởi xuống liên tục nhiều byte mà trong khi vòng if(RxR != RxW) {
//xử lý byte nhận được ở đây
RxR++;
chưa kịp xử lý thì sẽ bị tràn bộ đệm buffer[16]; thì sao. nếu bị tràn thì sẽ bị mất byte thôi. cò nếu tăng buffer[16]; lên thì không biết tăng bao nhiêu cho thích hợp nữa vì nó phụ thuộc vào số byte pc gởi xuống và thời gian xử lý hết vòng while(1) phải không. mong bạn góp ý kiến.
bạn haibac có thể nói rỏ hơn pic nào có nhiều bộ đệm trong uart không.
cảm ơn hai bạn nhiều!
tungtot_vl vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 28-08-2008, 10:52 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 tungtot_vl View Post
cảm ơn 2 bạn nhiều. code của bạn minh tuan liệu có ổn không. nếu trong vòng lặp while(1) thời gian làm việc cho vòng này từ 5 đến 10 phút thì khi pc gởi xuống liên tục nhiều byte mà trong khi vòng if(RxR != RxW) {
//xử lý byte nhận được ở đây
RxR++;
chưa kịp xử lý thì sẽ bị tràn bộ đệm buffer[16]; thì sao. nếu bị tràn thì sẽ bị mất byte thôi. cò nếu tăng buffer[16]; lên thì không biết tăng bao nhiêu cho thích hợp nữa vì nó phụ thuộc vào số byte pc gởi xuống và thời gian xử lý hết vòng while(1) phải không. mong bạn góp ý kiến.
bạn haibac có thể nói rỏ hơn pic nào có nhiều bộ đệm trong uart không.
cảm ơn hai bạn nhiều!
Nếu vòng lặp while (1) của bạn lâu như vậy thì bạn nên viết lại để thường xuyên kiểm tra bộ đệm hơn.

Bộ đệm có thể tăng lên theo yêu cầu của khối dữ liệu, nếu xử lý không kịp trong vòng while (1). PIC18F4680 có khá nhiều RAM.

PIC24/dsPIC hay PIC32 có bộ đệm 4 mức cho module UART. Như thế là đủ cho việc giao tiếp bằng RS-232 rồi.

Cho đến giờ, bạn vẫn chưa đưa ra vấn đề cụ thể của bạn, mà chỉ hỏi cách thực hiện những gì mà bạn cho là giải pháp. Tôi cho rằng thời gian hoàn tất một vòng while (1) từ 5 đến 10 phút là không hợp lý, nên viết lại.

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
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à 03:58 AM.


Đượ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