Читаем:
Цитата(Alexis25 @ Oct 6 2008, 15:30)

На тини создан проект (в codevision avr), в настройках включен усарт с прерыванием. В обработчике усарта вписал только одну строчку:
PORTB.6=!PINB.6
А в выложенном исходнике:
Цитата
interrupt [USART_RXC] void usart_rx_isr(void)
{
char status,data;
status=UCSRA;
data=UDR;
if ((status & (FRAMING_ERROR | PARITY_ERROR | DATA_OVERRUN))==0)
{
rx_buffer[rx_wr_index]=data;
if (++rx_wr_index == RX_BUFFER_SIZE) rx_wr_index=0;
if (++rx_counter == RX_BUFFER_SIZE)
{
rx_counter=0;
rx_buffer_overflow=1;
};
};
PORTB.6++;
}
Нефиговая такая строчечка, да.... с равномерным таким временем выполнения, ага
У вас линия RS485 к 2.5 вольтам подтянута? Без этого будет приниматься мусор, и такой обработчик ("
PORTB.6++;") прерывания его зафиксирует. Мусорные "байты" могут "приходить" в любой момент.