Цитата(aesok @ Feb 5 2008, 17:37)

Вы ждете что я вам скажу номер строки где надо внести изменения???? У меня нет исходников.....
Анатолий.
Ок,
настройка USART:
// USART initialization^M
// Communication Parameters: 8 Data, 1 Stop, No Parity^M
// USART Receiver: On^M
// USART Transmitter: On^M
// USART0 Mode: Asynchronous^M
// USART Baud rate: 38400 (Double Speed Mode)^M
UCSR0A=0x02;^M
UCSR0B=0x98;^M
UCSR0C=0x06;^M
UBRR0H=0x00;^M
UBRR0L=0x19; ^M
Обработчик:
// USART Receiver interrupt service routine^M
#ifndef __GNUC__
interrupt [USART_RXC] void usart_rx_isr(void)^M
#else
ISR(USART_RX_vect)
#endif
{ ^M
char status,Rdata/*,x*/;^M
unsigned long K;^M
status=UCSR0A;^M
Rdata=UDR0; ^M
if ((status & (FRAMING_ERROR | PARITY_ERROR | DATA_OVERRUN))==0)^M
{^M
^M
if(rx_index0==0)^M
{^M
if(Rdata=='E')^M
{^M
//for(x=0;x<data[2];x++)putchar((data[x]));^M
PutDataBuff(); ^M
//putchar(crc8_compute(&data[1],5)); ^M
rx_index0=0;goto end_rx_isr;^M
}//resived error need retransmit last paket^M
}^M
if(rx_index0>32)rx_index0=0;^M
rx_buffer0[rx_index0++]=Rdata; ^M
if(rx_index0==2)rx_weit_index0=Rdata;//set paket size^M
if (rx_weit_index0 == rx_index0)//paket resived^M
{^M
//check CRC^M
if((rx_buffer0[rx_weit_index0-1])==(crc8_compute(&rx_buffer0[0],rx_weit_index0-1)))^M
{//crc ok^M
.....
}^M
else {PutError('C');}//crc error^M
rx_index0=0;^M
}^M
^M
}^M
else {PutError('F');rx_index0=0;}//frame error^M
^M
end_rx_isr: ^M
return;^M
} ^M