nếu em một mảng truyền lên PC bằng lệnh putc() thì không có gì sai cả,cái khác ở đây là sẽ có ký tự phản hồi từ Mobie(cái này thì em đã kiểm tra gữa mobie và PC) và làm cho ngắt nhận xảy ra không còn đúng nữa
nếu em thêm 1 khoảng trễ như thế này thì số ngắt nhận xảy ra nhiều hơn,nhưng vẫn không đúng:
Code:
void read_SMS(){
int8 i,j;
i=0;
j=0;
while ((i<18)){
putc(mang1[i]);
delay_ms(10);
i++;}
while (j<11){
putc(mang2[j]);
delay_ms[10];
j++;}
}
nếu em truyền một mảng ký tụ từ PC thì số lần ngắt nhận xảy ra đúng
em nghĩ vấn đề ở đây là do sự truyền nhận xảy ra liên tục làm cho các ngắt nhận xảy ra sai
nhưng cũng thấy vô lý vì với tốc độ 9600 bit/s thì 1 byte truyền đi mất khoảng 900 us,trong khi đó 1 lệnh của PIC thực hiện trong 1/3 us (thạch anh 12M) --------> khi PIC truyền xong 1byte,thì PIC có thể thực hiện 2700 lệnh trước khi truyền byte tiếp theo,do vậy nó phải đủ thời gian để nhảy vào ngắt nhận đển nhận byte phản hồi từ Mobie chứ
--------> rất khó hiểu
Mong anh cùng em suy nghĩ,giải thích vấn đề này!