Я уже привожу, просто убирал все лишнее...
Код
__irq void IRQ_DBGU(void)
{char j, k, l, h;
short i;
long long temp;
unsigned int status;
long long TMP;
int R;
// get Usart status register and active interrupt
status = AT91C_BASE_DBGU->DBGU_CSR;
if (status & AT91C_US_RXBUFF)
{
...
ОБРАБОТКА DBGU
...
memcpy(buff_rx, buff_rx_null, sizeof(buff_rx_null));
AT91C_BASE_DBGU->DBGU_RPR = (unsigned int) buff_rx;
AT91C_BASE_DBGU->DBGU_RCR = 40;
//* Reset the satus bit for error
AT91C_BASE_DBGU->DBGU_CR = AT91C_US_RSTSTA;
}
if (status & AT91C_US_TIMEOUT)
{
AT91C_BASE_DBGU->DBGU_CR = AT91C_US_STTTO;
}
//status = AT91C_RTTC_RTTINC;
status = AT91C_BASE_RTTC->RTTC_RTSR;
if (status != 0)
{
...
ОБРАБОТКА RTTC
...
}
AT91C_BASE_AIC->AIC_ICCR = (1 << AT91C_ID_SYS);
AT91C_BASE_AIC->AIC_EOICR = 0;
}
Сообщение отредактировал Китаев Владимир - Feb 3 2009, 10:05