dziwny problem 8051 i komunikacja szeregowa

Hej, Mam 8051EVB rev3.1 (8051RD2+TCP/IP+RS232). Mam problem z odbiorem bajtów z portu szeregowego. Odczytuje pierwszy bajt, potem gubi kilka bajtów, i reszta do konca juz dobrze. Zmniejszyłem prędkość z 2400 do 300 i nadal gubi bajty. Może czekanie na bajt 16h lub e5 powoduje takie opóźnienie? Może ktoś coś mi doradzić?

T89c51rd2 pracuje w trybie X2, Timer2 prędkość 300b, transmisja 9bit, asyn. void InitSerialT2_300(void) //x2 300b { SCON = 0xD2; ES = 0; RI=0; TI=0; T2CON=0x34; RCAP2H=TH2=0xf2; RCAP2L=TL2=0xfb; }

BYTE xdata odp[256]; //bufor odbioru ramki

Wysyłam bajty, for (j = 0; j < len; j++) PutByte(data_buf[j]);

urządzenie zewn. odbiera i "natychmiast" odpowiada

for( k1 = 0 ; k1 < 250 ; k1++) //oczekiwanie na dane okolo 2s { if(IsPressedKey() == 1) { do { while( !RI ); RI = 0; odp[ilosc] = SBUF; }//kończy się bajtem 16h lub E5h while((odp[ilosc] != 0x16) && (odp[ilosc++] != 0xE5)); break; } wait_1us(1000); //1ms }//for //Nastepnie wpisuje odebrane bajty do pamieci w3100 i wysłam przez tcp/ip for (k2 = 0; k2 <= ilosc; k2++) { LCDPutHTOA(odp[k2]); data_buf[k2] = odp[k2]; } send(i, data_buf, j);

Reply to
lsg25
Loading thread data ...

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.