всем привет. Вопрос собствено вот в чем. Вроде все просто. Нужно мне юзать 4 юарта. Взял для этих целей м1280 и был бы счастлив, еслиб все они заработали. Но работают только 0 и 1 юарт, 2 и 3 нивкакую. Что я не так делаю? Для проверки даже на асме быстро прогу наваял. Прерывания от 0 и 1 срабатывают, а вот от 2 - нет.

Спецы, подскажите заблудившему в поиске истины.
.include "m1280def.inc"
.org 0
rjmp init
.org URXC0addr
rjmp Handler_USART0
.org URXC1addr
rjmp Handler_USART1
.org URXC2addr
rjmp Handler_USART2
init:
; UCSR0B = 0x00; //disable while setting baud rate
CLR R2
STS 0xC1,R2
//UCSR0A = 1<<U2X;
; UBRR0L = 0xBF; //set baud rate lo
LDI R24,0xBF
STS 0xC4,R24
; UBRR0H = 0x00; //set baud rate hi
STS 0xC5,R2
; UCSR0C = (1<<UCSZ01)|(1<<UCSZ00);
LDI R24,6
STS 0xC2,R24
; UCSR0B = ((1<<RXCIE0)|(1<<RXEN0)|(1<<TXEN0));
LDI R24,0x98
STS 0xC1,R24
;UCSR1B = 0x00; //disable while setting baud rate
CLR R2
STS 0xC9,R2
; UBRR1L = 0x2F; //set baud rate lo
LDI R24,0x2F
STS 0xCC,R24
; UBRR1H = 0x00; //set baud rate hi
STS 0xCD,R2
;UCSR1C = (1<<UCSZ11)|(1<<UCSZ10);
LDI R24,6
STS 0xCA,R24
; UCSR1B = ((1<<RXCIE1)|(1<<RXEN1)|(1<<TXEN1));
LDI R24,0x98
STS 0xC9,R24
CLR R2
STS 0xD1,R2
;UBRR2L = 0x0F; //set baud rate lo
LDI R24,0xF
STS 0xD4,R24
; UBRR2H = 0x00; //set baud rate hi
STS 0xD5,R2
; UCSR2C = (1<<UCSZ21)|(1<<UCSZ20);
LDI R24,6
STS 0xD2,R24
;UCSR2B = ((1<<RXCIE2)|(1<<RXEN2)|(1<<TXEN2));
LDI R24,0x98
STS 0xD1,R24
sei
idle:
rjmp idle
Handler_USART0:
nop
nop
nop
reti
Handler_USART1:
nop
nop
nop
reti
Handler_USART2:
nop
nop
nop
reti