Если кто то писал в IAR 4.41 помогите!
Не могу вызвать прерывание таймера ... вроде бы все делаю правильно.
Инизиализирую таймер:
AT91C_BASE_AIC->AIC_IDCR = 0xFFFFFFFF ; /* reset the aic, disable all interrupts */ AT91C_BASE_AIC->AIC_ICCR = 0xFFFFFFFF ; /* clear all interrupts */ AT91C_BASE_AIC->AIC_EOICR = 0 ; /* unstack one level */ AT91C_BASE_PMC->PMC_PCER |= ( 1UL<<AT91C_ID_TC0 ) ; /* enable tc0 */ AT91C_BASE_AIC->AIC_IDCR |= ( 1UL<<AT91C_ID_TC0 ) ; /* disable pio interrupt */ AT91C_BASE_AIC->AIC_SVR[AT91C_ID_TC0] = ( AT91_REG )timer0_c_irq_handler; /* set isr */ //* Open timer0 AT91F_TC_Open(AT91C_BASE_TC0,5,AT91C_ID_TC0); //* Start timer0 AT91C_BASE_TC0->TC_CCR |= AT91C_TC_SWTRG ; AT91C_BASE_AIC->AIC_SMR[AT91C_ID_TC0] = ( AT91C_AIC_SRCTYPE_INT_LEVEL_SENSITIVE )|( 1/* prio 1*/ ) ; AT91C_BASE_AIC->AIC_ICCR |= ( 1UL<<AT91C_ID_TC0) ; /* clear pio interrupt */ AT91C_BASE_AIC->AIC_IECR |= ( 1UL<<AT91C_ID_TC0 ) ; /* enable pio interrupt */ __enable_interrupt( ) ; AT91C_BASE_TC0->TC_IER |= AT91C_TC_CPCS | AT91C_TC_COVFS | AT91C_TC_LOVRS; // IRQ enable CPC
AT91F_TC_Open
void AT91F_TC_Open ( AT91PS_TC TC_pt, unsigned int Mode, unsigned int TimerId) //* Begin { unsigned int dummy;
//* First, enable the clock of the TIMER AT91F_PMC_EnablePeriphClock ( AT91C_BASE_PMC, 1<< TimerId ) ;
//* Disable the clock and the interrupts TC_pt->TC_CCR = AT91C_TC_CLKDIS ; TC_pt->TC_IDR = 0xFFFFFFFF ;
//* Clear status bit dummy = TC_pt->TC_SR; //* Suppress warning variable "dummy" was set but never used dummy = dummy; //* Set the Mode of the Timer Counter TC_pt->TC_CMR = Mode ; // TC_pt->TC_RC =60000; //* Enable the clock TC_pt->TC_CCR |= (AT91C_TC_CLKEN) ; //* End };
Сам обработчик static __arm __irq void timer0_c_irq_handler(void) { AT91PS_TC TC_pt = AT91C_BASE_TC0; unsigned int dummy; //* Acknowledge interrupt status dummy = TC_pt->TC_SR; //* Suppress warning variable "dummy" was set but never used dummy = dummy; count_timer0_interrupt++; AT91C_BASE_AIC->AIC_EOICR = 0 ; /* end interrupt */ };
Может где то ошибка? Если у кого есть примеры для Аргусовтовской платы скиньте пожалуйста.
|