если исчезла - объявите temp как volatile int. Предполагаю, что в конце обработчика вы не забыли сделать AT91C_BASE_AIC->AIC_EOICR = 0? Все остальные прерывания работают? Если нет - добавьте в конец инициализации прерываний AT91C_BASE_AIC->AIC_EOICR = 0;