Witam
Mam problem z nadpisywaniem stringów
Wysyłam z komputera po rs'ie do procka znak/i i procek odpowiada mi po chwili tym co otrzymał. Czasem zdarza się że procek wysyła więcej niż powinien tzn np. wysyłam kilka znaków - odpowiada OK, następnie wysyłam mniej znaków, a procesor odpowiada tym co wysłałem + część z poprzednio wysłanych znaków.
Poniżej listing.
Znaki odbieram w głównej procedurze ( bo mam tam pewną przeróbkę ) która potrzebna jest do nieobecnej reszty programu ).
Problem jest z stringiem wpis ( tablica charów).
Ktoś ma jakiś pomysł w czym może tkwić mój błąd? Dlaczego string się nie odświeża zawsze ?
Pozdr.
Mam problem z nadpisywaniem stringów
Wysyłam z komputera po rs'ie do procka znak/i i procek odpowiada mi po chwili tym co otrzymał. Czasem zdarza się że procek wysyła więcej niż powinien tzn np. wysyłam kilka znaków - odpowiada OK, następnie wysyłam mniej znaków, a procesor odpowiada tym co wysłałem + część z poprzednio wysłanych znaków.
Poniżej listing.
Znaki odbieram w głównej procedurze ( bo mam tam pewną przeróbkę ) która potrzebna jest do nieobecnej reszty programu ).
int main(void)
{
int j,i=0;
long czas=0;
unsigned char wpis[12];
UART_init();
while(1)
{
UART_putstr(" Podaj znak ");
czas=0;
for(i=0;i<10;i++)
{
while(bit_is_clear(_USR_,RXC)&&czas<1000000)
{
if(i!=0)
czas++;
}
cbi(_USR_,RXC);
if (czas>990000)
error=1;
else
{
wpis[i]=UDR;
error=0;
}
if (error==1)
{
break;
}
}
cbi(PORTC,PC0);
for(i=0; i<600; i++) // opóźnienie
for(j=0; j<123; j++); // opóźnienie
sbi(PORTC,PC0);
UART_putstr(" Wysłano: ");
UART_putstr(wpis);
}
}Problem jest z stringiem wpis ( tablica charów).
Ktoś ma jakiś pomysł w czym może tkwić mój błąd? Dlaczego string się nie odświeża zawsze ?
Pozdr.