đoạn code trên viết cho pic với sim 300 mấy anh pro có thể giải thích cho em 2 khúc được ko ạ?
Đoạn thứ 1
Code:
Receive_isr() //Chương trình ngắt UART, khi PIC nhận được data truyền đến từ SIM300 thông qua giao thức UART, nó sẽ nhảy vào ctrình ngắt UART này để xử lý
{
ch = getc(); // lệnh get() sẽ nhận các bye data được truyền đến từ SIM300
if(isti==1) //cho phep nhan khi da khoi tao thanh cong
{
if(ch==10 && index ==0) is=1; //bat dau cho phep nhan chuoi
if(ch==10 && index>0) {idex=index; ngat=1; isti = 2; } //KHI KET THUC MOT CHUOI
if(ch!=10 && ch!=13 && is == 1) { str[index] = ch; index++; }
}
if(isti==2) //cho phep nhan khi da khoi tao thanh cong
{
if(ch==10 && index1 ==0) is=1; //bat dau cho phep nhan chuoi
if(ch==10 && index1>0) {idex1=index1; ngat=2; isti = 0; } //KHI KET THUC MOT CHUOI
if(ch!=10 && ch!=13 && is == 1) { str1[index1] = ch; index1++; }
}
đoạn thứ 2:
Code:
\putc('A'); putc('T'); putc('+'); putc('C'); putc('M'); putc('G'); putc('S'); putc('='); putc(34);
putc('0'); putc('9'); putc('7'); putc('5'); putc('1'); putc('9'); putc('1'); putc('4'); putc('0');
putc('9'); putc(34); putc(13); delay_ms(200);
putc(str3[0]); putc(str3[1]); putc(str3[2]); putc(str3[3]); putc(str3[4]); putc(str3[5]);
putc(str3[6]); putc(str3[7]); putc(str3[8]); putc(str3[9]); putc(str3[10]); putc(str3[11]); putc(str3[12]);putc(26); putc(13);
mấy cái putc(34); putc(13); delay_ms(200);
putc(str3[0]); putc(str3[1]); putc(str3[2]); putc(str3[3]); putc(str3[4]); putc(str3[5]);
putc(str3[6]); putc(str3[7]); putc(str3[8]); putc(str3[9]); putc(str3[10]); putc(str3[11]); putc(str3[12]);putc(26); putc(13);
=> putc() là lệnh truyền data từ PIC ra thiết bị khác thông qua UART (RX,TX), ở đây cụ thể là giao tiếp với SIM300.
VD cụ thể:
putc('A') có nghĩa là truyền ký tự A đến Sim300
Sim300 khi hoạt động nó dựa vào tập lệnh để chạy, tập lệnh này đc truyền từ VDK đến SIM300 tùy theo ý đồ của ng lập trình. Bạn nên tham khảo datasheet của Sim300 để biết rõ tập lệnh.
-
Bạn nên tìm đọc CCS và PIC cơ bản để có khái niệm rõ hơn.
[/quote]