Эта функция работает нормально с МК данные приходят валидные. Проблема в использовании преррывания на приходящие байты данных в МК! Я так понимаю мне надо углубиться в чтение книжек

. Примера нет никакого?
void UART_outstr_P(PGM_P str)
{
unsigned char i = 0;
while(1)
{
char c = pgm_read_byte(&str[i]);
if(!c) break;
UDR=c;
loop_until_bit_is_set(USR, UDRE);
i++;
}
}