Programmer (08.04.2008 13:27, просмотров: 5210)
Помогите с примерчиком конфигурации прерывания по внешнему переходу сигнала приходящему на пин порта PA22 AT91SAM7X256. Моё художество внутри... #define TXSYNC ((unsigned long) 0x1 << 22) //
#define RXSYNC ((unsigned long) 0x1 << 24) //
void AT91F_PIOA_Interrupt_handler () __irq
{
// сюда непопадаем...
}
void InitPinInt( AT91PS_PIO pPio,unsigned int pioEnable) //
{
pPio->PIO_PDR = pioEnable;
pPio->PIO_ODR = pioEnable;
pPio->PIO_IFDR = pioEnable;
pPio->PIO_CODR = pioEnable;
pPio->PIO_IER = pioEnable;
pPio->PIO_MDDR = pioEnable;
// pPio->PIO_PUER = pioEnable;
pPio->PIO_ASR = pioEnable;
pPio->PIO_OWDR = pioEnable;
}
void InitModems()
{
AT91F_PMC_EnablePeriphClock (AT91C_BASE_PMC, 1 << AT91C_ID_PIOA);
InitPinInt(AT91C_BASE_PIOA,TXSYNC|RXSYNC);
AT91F_AIC_ConfigureIt ( AT91C_BASE_AIC,AT91C_ID_PIOA,AT91C_AIC_PRIOR_HIGHEST,AT91C_AIC_SRCTYPE_EXT_NEGATIVE_EDGE, AT91F_PIOA_Interrupt_handler);
AT91F_AIC_EnableIt (AT91C_BASE_AIC, AT91C_ID_PIOA);
}