vn00426941
29-03-2015, 06:35 PM
Cho mình hỏi về hàm getc() của CCS. Mọi người cho mình hỏi hàm này nó sẽ đọc dữ liệu từ cổng UART như thế nào ? Thí dụ mình truyền cái câu này:
+CMGR: "REC UNREAD","+84934306492","","15/03/24,22:30:43+28" Test nhan tin
Mình cứ tưởng là nó sẽ in ra terminal là:
R: "REC UNREAD","+84934306492","","15/03/24,22:30:43+28" Test nhan tin
Nhưng mà mình lại thấy kết quả nó in ra Terminal là:
R: "REC UNREAD","+84934306492","","15/03/24,22:30:43+28"
Mình không hiểu lý do tại sao phần " Test nhan tin" tại sao nó lại bị mất. Nếu mình muốn lấy tới: "Test tin nhắn" luôn thì mình phải dùng hàm gì của CCS để lấy hết.
CODE:
#INT_RDA
void rda_isr(void)
{
c=getc();
if(c=='+') c1=c;
if(c=='C') c2=c;
if(c=='M') c3=c;
if(c=='G') c4=c;
if(c=='R') c5=c;
if(c1=='+' && c2=='C' && c3=='M' && c4=='G' && c5=='R')
{
putc(c);
}
}
+CMGR: "REC UNREAD","+84934306492","","15/03/24,22:30:43+28" Test nhan tin
Mình cứ tưởng là nó sẽ in ra terminal là:
R: "REC UNREAD","+84934306492","","15/03/24,22:30:43+28" Test nhan tin
Nhưng mà mình lại thấy kết quả nó in ra Terminal là:
R: "REC UNREAD","+84934306492","","15/03/24,22:30:43+28"
Mình không hiểu lý do tại sao phần " Test nhan tin" tại sao nó lại bị mất. Nếu mình muốn lấy tới: "Test tin nhắn" luôn thì mình phải dùng hàm gì của CCS để lấy hết.
CODE:
#INT_RDA
void rda_isr(void)
{
c=getc();
if(c=='+') c1=c;
if(c=='C') c2=c;
if(c=='M') c3=c;
if(c=='G') c4=c;
if(c=='R') c5=c;
if(c1=='+' && c2=='C' && c3=='M' && c4=='G' && c5=='R')
{
putc(c);
}
}