View Single Post
Old 08-05-2006, 03:17 PM   #1
NTVinh
Đệ tử 2 túi
 
Tham gia ngày: Apr 2006
Bài gửi: 32
:
Làm thế nào để timeout khi dùng hàm getc() của CCS sau một thời gian nhất định, định trước? GETC() là một hàm mà CCS đã có sẵn trong thư viện của nó, nhiệm vụ của getc() là chờ nhận một ký tự mà ký tự đó được truyền tới từ một đầu cuối khác thông qua công truyền thông nối tiếp UART. Khi dùng hàm này, chúng ta hết sức cẩn trọng bởi cái việc "chờ" một ký tự được coi là hợp lệ. Vấn đề này giải quyết thế nào đây? CCS đã mách rằng, hãy sử dụng hàm khbit(). Sau đây là một ví dụ mà CCS cung cấp để giải quyết vấn đề này:

Code:
short timeout_error;

char timed_getc() {

   long timeout;

   timeout_error=FALSE;

   timeout=0;

   while(!kbhit&&(++timeout<50000))   // 1/2 second

      delay_us(10);

   if(kbhit())

     return(getc());

   else {

     timeout_error=TRUE;

     return(0);

   }

}
Nguyen The Vinh.

thay đổi nội dung bởi: falleaf, 11-05-2006 lúc 10:56 PM.
NTVinh vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn