Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: SAM7 прерывания от PIO
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > ARM
vovanse
Пытаюсь разобраться с AT91SAM7S64 и никак не могу добиться прерывания от PIOA - насколько я понял можно вызвать прерывание по изменению состояния вывода. Сделал так, используя примеры от Atmel

AT91F_PMC_EnablePeriphClock ( AT91C_BASE_PMC, 1 << AT91C_ID_PIOA ) ;
AT91F_PIO_CfgInput(AT91C_BASE_PIOA, (SW1|SW2|SW3|SW4|AT91C_PA8_CTS0));
AT91F_AIC_ConfigureIt ( AT91C_BASE_AIC, AT91C_ID_PIOA, 6, T91C_AIC_SRCTYPE_INT_HIGH_LEVEL, IntHandler);
AT91F_PIO_InterruptEnable(AT91C_BASE_PIOA,SW1|SW2|SW3|SW4);
AT91F_AIC_EnableIt (AT91C_BASE_AIC, AT91C_ID_PIOA);

обработчик прерываия
__ramfunc void IntHandler(void)
{
gtmp=12;
};

меняю состояние портов и ничего... Что то еще не включил? Может у кого есть пример?
Сергей Борщ
Цитата(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
}
}
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.