Цитата(vovanse @ Oct 11 2006, 12:48)

Пытаюсь разобраться с AT91SAM7S64 и никак не могу добиться прерывания от PIOA - насколько я понял можно вызвать прерывание по изменению состояния вывода. Сделал так, используя примеры от Atmel
меняю состояние портов и ничего... Что то еще не включил? Может у кого есть пример?
Код
AT91C_BASE_PIOA->PIO_IER = (1UL<<19); // FFSK_CLK
AT91C_BASE_PIOA->PIO_IFER = (1UL<<19);
AT91C_BASE_PIOA->PIO_ODR = (1UL<<19);
AT91C_BASE_PIOA->PIO_PER = (1UL<<19);
AT91C_BASE_PMC->PMC_PCER = (1<<AT91C_ID_PIOA);
AT91C_BASE_AIC->AIC_SMR[AT91C_ID_PIOA] = AT91C_AIC_SRCTYPE_INT_LEVEL_SENSITIVE | AT91C_AIC_PRIOR_LOWEST;
AT91C_BASE_AIC->AIC_SVR[AT91C_ID_PIOA] = (uint32_t)FFSK_Buffer::Int_Handler;
AT91C_BASE_AIC->AIC_EOICR = 0; // Reset AIC logic done in c-spy .mac
AT91C_BASE_AIC->AIC_IECR = (1<<AT91C_ID_PIOA); // enable ints
namespace FFSK_Buffer {
__irq __arm void Int_Handler() {
if((AT91C_BASE_PIOA->PIO_ISR & (1<<19)) && signal (FFSK_CLK))
RxBit();
AT91C_BASE_AIC->AIC_EOICR = 0; // Reset AIC logic
}
}