Спасибо за разъяснение, впринципе так я и полагал:
Код
lds rh_ucsra, UCSR0A
lds rh_ucsrb, UCSR0B
lds rh_udr, UDR0
sbrs rh_ucsrb, RXB80
rjmp UARTInt_Data
UARTInt_Address:
UARTInt_Address_Err:
ldi rh_dataInt, BUFFER_bUART_SIZE
cp rl_countUARTRx, rh_dataInt
breq UARTInt_Address_Err_
Point1:
sbr rh_flags, 1 << BUFFER_bUART_RECEIVE_ERROR
rjmp UARTInt_
UARTInt_Address_Err_:
cpi rh_udr, MODULE_bADDRESS
brne UARTInt_
andi rh_ucsra, ~(1 << MPCM0)
sts UCSR0A, rh_ucsra
rjmp UARTInt_
UARTInt_Address_:
UARTInt_Data:
st rx+, rh_udr
dec rl_countUARTRx
brne UARTInt_
Point2:
sbr rh_flags, 1 << BUFFER_bUART_READ_DONE
ori rh_ucsra, 1 << MPCM0
sts UCSR0A, rh_ucsra
rjmp UARTInt_
UARTInt_Data_:
UARTInt_:
До точки Point2 прога доходит только если принимается < 90 байт
Если например ставить прием 100 байт из 256 приходящих то в точке Point1 rl_countUARTRx == 11