Цитата(studert @ Oct 17 2008, 15:07)

Задаю благозвучное название прерывания
#define PacketReceiveComplete INT5_vect
Объявлена глобальная переменная, значение которой
uint64t_t DestMAC;
Обработчик прерывания, функция getDestMAC записывает в переменную DestMAC нужные данные
ISR(PacketReceiveComplete){
cli();
getDestMAC(&DestMAC);
sei();
}
int main(void){
...
printf("%lx",DestMAC);
}
Это не работает, печатает мусор,причем попытки изменить DestMAC main тоже неудачны, она не меняется. Что я делаю не так?
1) А просто printf у вас работает, если не использовать обработчиков прерываний по приему, по окончании передачи, по свободному регистру UDRn?