Для AT90CAN128 заменил #define portCOMPARE_MATCH_A_INTERRUPT_ENABLE ( ( uint8_t ) 0x10 )
на
#define portCOMPARE_MATCH_A_INTERRUPT_ENABLE ( ( uint8_t ) 0x02 )
TIMSK |= portCOMPARE_MATCH_A_INTERRUPT_ENABLE;
на
TIMSK1 |= portCOMPARE_MATCH_A_INTERRUPT_ENABLE;
#include <iom323.h>
на
#include <iocan128.h>
Обозначить нужные прерывания в ассемблерном файле и не нужно
писать прагму перед именем обработчика в сишнике.
ORG USART_RXC_vect ; Vector address
jmp SIG_UART_RECV ; ISR
ORG USART_UDRE_vect ; Vector address
jmp SIG_UART_DATA ; ISR
на
ORG USART0_RX_vect ; Vector address
jmp SIG_UART_RECV ; ISR
ORG USART0_UDRE_vect ; Vector address
jmp SIG_UART_DATA ; ISR
Что касается рудиментов-атавизмов склоняюсь к идее, что зубов бояться в рот не давать.