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

Trả lời
 
Ðiều Chỉnh Xếp Bài
Old 19-09-2010, 08:27 PM   #1
tungnh
Đệ tử 5 túi
 
Tham gia ngày: Sep 2007
Bài gửi: 94
:
Trích:
Nguyên văn bởi 0903579509 View Post
Tôi đang sử dụng 2 con PIC6F877A truyền dữ liệu cho nhau. Để chống vấn đề sai số khi truyền và nhận thường kiểm tra như sau:

putc(1 ký tự);
c = getc();

Trong trường hợp việc truyền và nhận không hoàn hão thì pic bị treo tại dòng lệnh C = getc()
Bác nào có cách nào giải quyết điều này xin chỉ giáo
Cám ơn nhiều.
Xóa bit OERR và FERR xem sao?
__________________
Windows CE 6 R3
tungnh vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 20-09-2010, 06:54 AM   #2
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 tungnh View Post
Xóa bit OERR và FERR xem sao?
Bạn có thể viết cụ thể hơn được không. Theo tôi nghỉ cũng rất khó, bởi vì trong CCSC dòng lệnh c = getc() được dịch qua ASM như sau:
0061 btfss 0C.5
0062 goto 0061
0063 movf 1A,W
0064 movwf 43

Như vậy khi chưa nhận đủ một Frame thì bit 0C.5 (rcif) chưa được set, vòng lặp cứ lặp đi lặp lại tại địa chỉ 062 - 061 - 062 mà không thể thoát ra được.

Vậy có cách nào để thoát ra không ?
0903579509 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à 06:27 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