А std* это по-вашему что? Стандартная библиотека! Вот я и говорю, что функцию создает визард, она не стандартная, и как она там связана с приемным буфером проверять смысла нет, там все работает.
Вот вам код искомый, как его генерит визард (но для второго USART'а ATMega128, потому и единичка везде):
Цитата
// Get a character from the USART1 Receiver buffer
#pragma used+
char getchar1(void)
{
char data;
while (rx_counter1==0);
data=rx_buffer1[rx_rd_index1];
if (++rx_rd_index1 == RX_BUFFER_SIZE1) rx_rd_index1=0;
#asm("cli")
--rx_counter1;
#asm("sei")
return data;
}
#pragma used-
И вообще, вопрос у автора не про это. Опять оффтопика полкило ;(