ну так флаг прерывания снимается по чтению UDR, а тебе компилер в прологе прерывания разрешил до этого. Ты тут же реентрантно входишь опять в прерывание. Через несколько микросекунд стек переполнится и прощайте хлопцы
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)