PIC Vietnam

Go Back   PIC Vietnam > Microchip PIC > Cơ bản về vi điều khiển và PIC

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

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
Prev Previous Post   Next Post Next
Old 20-09-2010, 02:14 PM   #6
0903579509
Đệ tử 4 túi
 
Tham gia ngày: Mar 2007
Nơi Cư Ngụ: Da Nang
Bài gửi: 69
:
Trích:
Nguyên văn bởi namqn View Post
Bạn có thể thay dòng c = getc() bởi một đoạn code, trong đó bạn kiểm tra cờ nhận trong 1 khoảng thời gian cho trước (100 ms chẳng hạn), nếu hết thời gian mà bạn không thấy cờ nhận được bật thì thoát, còn nếu cờ nhận được bật thì việc dùng hàm getc() để nhận ký tự là an toàn.

Thân,
Hiện tại tôi đã dùng Timer2 để tạo một khoảng thời gian 50ms phục vụ cho công việc này, nhưng sao nó thấy phức tạp quá.
Giải pháp như sau:
Sau khi putc(1 ký tự) thì bật Timer2, khi Timer2 chảy đủ 50ms thì set bit cờ (timeout chẳng hạn). nhiệm vụ của code là :
loop:
if (rcif) { nhận byte data}
else if (! timeout) { goto loop)
else { báo lỗi}
Sau khi thực hiện xong nhiệm vụ thì tắt Timer2.
Mỗi byte truyền đi đều phải thực hiện công việc như vậy thì phức tạp quá. Không biết có bạn nào có cách gì đơn giản hơn không?

Cảm ơn các bạn nhiều.
0903579509 vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
 


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à 04:57 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