Em chào bác.
Em đang làm cái mạch giao thông . Em muốn hỏi về rs232(usart) . Em đã thiết lập usart cho phép ngắt khi có kí tự gửi đến và gửi đi. Em có hàm sau:
int capnhat(void){
char x = getchar();
char k = x-48;
switch(k){
case '1':
case '2':
case '3':
case '4':
case '5':
case '6': putchar(x); break;
default: putchar(0); return 0;
}
return 1;
}
trong main() của em:
while(1){
capnhat();
PORTA = 0xff;
}
Em thấy sau khi em gõ 1 kí tự từ terminal gửi về thì PORTA mới làm đèn sáng => hàm trong capnhat() là đợi ở câu lênh getchar();
các bác ơi có cách nào để hàm này xác định có truyền kí tự thì làm ( qua interrupt) còn không sẽ nhẩy làm lệnh dưới không anh. Để vi điều khiển không phải đợi cho đến khi có phím gõ
Mong chỉ giáo
Em đang làm cái mạch giao thông . Em muốn hỏi về rs232(usart) . Em đã thiết lập usart cho phép ngắt khi có kí tự gửi đến và gửi đi. Em có hàm sau:
int capnhat(void){
char x = getchar();
char k = x-48;
switch(k){
case '1':
case '2':
case '3':
case '4':
case '5':
case '6': putchar(x); break;
default: putchar(0); return 0;
}
return 1;
}
trong main() của em:
while(1){
capnhat();
PORTA = 0xff;
}
Em thấy sau khi em gõ 1 kí tự từ terminal gửi về thì PORTA mới làm đèn sáng => hàm trong capnhat() là đợi ở câu lênh getchar();
các bác ơi có cách nào để hàm này xác định có truyền kí tự thì làm ( qua interrupt) còn không sẽ nhẩy làm lệnh dưới không anh. Để vi điều khiển không phải đợi cho đến khi có phím gõ
Mong chỉ giáo
Comment