Требуется программист в Зеленограде
- обработка данных с датчиков; ColdFire; 40 тыс. e-mail:jobsmp@pochta.ru |
//------------------ КОД -------------------
//--------------------------------------------------------------------
// System interrupt handler
__ramfunc void systemInterruptHandler(void)
{
extern int n;
// Check PIT interrupt:
if((AT91C_BASE_PITC->PITC_PISR & AT91C_PITC_PITS) != 0)
{
unsigned int *p; // unsigned int
n++;
if (n==60)n=0;
p = &state[n];
AT91C_BASE_PIOA->PIO_SODR = *p/*state(n)*/; //loading PIOA state
if(++pit_cntr >= TWMP_PIT_TICK) pit_cntr = 0;
if (pit_dly_cntr) pit_dly_cntr--;
}
}
//--------------------------------------------------------------------
// Setup PIT with interrupt
void pit_Init(void)
{
AT91S_AIC *pAIC = AT91C_BASE_AIC;
pit_cntr = 0;
*AT91C_PITC_PIMR = AT91C_PITC_PITIEN |// PIT interrupt enable;
AT91C_PITC_PITEN | // PIT enable;
(long) (((MCK/TCF)/16)-1);// periodic interval value;
// Setup System Interrupt Mode and Vector with Priority 7 and Enable it:
pAIC->AIC_SMR[AT91C_ID_SYS] = AT91C_AIC_SRCTYPE_INT_EDGE_TRIGGERED | 7;
pAIC->AIC_SVR[AT91C_ID_SYS] = (unsigned int) systemInterruptHandler;
pAIC->AIC_IECR = (1<
//------------------------------------------------------------------
Ответы