Цитата(d71 @ May 11 2007, 09:41)

само прерывание ловлю, ногой дрыгаю, а вот при попытке сделать передачу байта, который поймал, всё виснет и больше уже ниодной ногой не дергает.
--
думаю что поглядев на реализацию пойму где застрял.
поделитесь а? (iar)
Только прием и заталкивание пакета фиксированного пакета с известными первым и последним байтами в линейный буфер.
Код
#pragma vector = USART_RXC_vect
__interrupt void USART_receive(void)
{ uchar b = UDR;
uart0.rx_flag=1;
uart0.rx_char=b;
{ if (uart0.rx_head == uart0.rx_buf)
{ if (!(b == uart0.start_rx_char))
return;
}
*uart0.rx_head = b;
uart0.rx_head ++;
if (uart0.rx_head >= uart0.rx_buf+uart0.packet_size)
uart0.rx_status=Uart0Received;
if (b == uart0.end_rx_char) uart0.rx_status=Uart0Received;
}
}
А старт отправки у меня отдельно.