с мегой встретился первый раз. Помогите разобраться.
Пишу на СИ. Разрешил прерывания. При приходе перерывания контроллер зависает.
Пишу так:
#include
#include
#include ISR(UART_RX_vect){
unsigned char data;
data = UDR;
usart_transmit(data);}
Дизассемблировал, не увидел перехода по этому вектору:
00000000 <__vectors>:
0: 14 c0 rjmp .+40 ; 0x2a <__ctors_end>
2: 2d c0 rjmp .+90 ; 0x5e <__bad_interrupt>
4: 2c c0 rjmp .+88 ; 0x5e <__bad_interrupt>
6: 2b c0 rjmp .+86 ; 0x5e <__bad_interrupt>
8: 2a c0 rjmp .+84 ; 0x5e <__bad_interrupt>
a: 29 c0 rjmp .+82 ; 0x5e <__bad_interrupt>
c: 28 c0 rjmp .+80 ; 0x5e <__bad_interrupt>
e: 27 c0 rjmp .+78 ; 0x5e <__bad_interrupt>
10: 26 c0 rjmp .+76 ; 0x5e <__bad_interrupt>
12: 25 c0 rjmp .+74 ; 0x5e <__bad_interrupt>
14: 24 c0 rjmp .+72 ; 0x5e <__bad_interrupt>
16: 23 c0 rjmp .+70 ; 0x5e <__bad_interrupt>
18: 22 c0 rjmp .+68 ; 0x5e <__bad_interrupt>
1a: 21 c0 rjmp .+66 ; 0x5e <__bad_interrupt>
1c: 20 c0 rjmp .+64 ; 0x5e <__bad_interrupt>
1e: 1f c0 rjmp .+62 ; 0x5e <__bad_interrupt>
20: 1e c0 rjmp .+60 ; 0x5e <__bad_interrupt>
22: 1d c0 rjmp .+58 ; 0x5e <__bad_interrupt>
24: 1c c0 rjmp .+56 ; 0x5e <__bad_interrupt>
26: 1b c0 rjmp .+54 ; 0x5e <__bad_interrupt>
28: 1a c0 rjmp .+52 ; 0x5e <__bad_interrupt>
Еще при компилировании, выдает один warning:
../usart.c:25: warning: `UART_RX_vect' appears to be a misspelled signal handler
Почему так происходит?
Что где поправить надо?