AT91: System Timer Interrupt

Jan 11, 2005 0 Replies

Hi,



Im working on a project involving the AT91rm9200. Im trying to generate interrupts through the System Timer`s Periodic Interval Timer. Its not working the way i want it to. Im getting periodic interrupts all right, but im not able shut it off properly. I keep getting timer interrupts continuously..the code of my C interrupt handler is below: (as may be evident, im using atmel`s pre-canned asm routines in the file irq.mac for backstage interrupt handling, but the C routines are mine )



void timer_c_irq_handler() { //Dummy variable used for clearing ST_SR volatile int status;



AT91PS_ST pST =3D AT91C_BASE_ST;



//read ST_SR status =3D pST->ST_SR;



//clear the interrupt for re-use AT91F_AIC_ClearIt( AT91C_BASE_AIC,AT91C_ID_SYS );



//Disable interrupts by the timer //AT91F_ST_DisableIt( AT91C_BASE_ST, AT91C_ST_PITS );



AT91F_DBGU_Printk("\n\rSystem Timer interrupt..\n\r");



}

As u can see, im try =B7 PITS: Period Interval Timer Status



0 =3D The period interval timer has not reached 0 since the last read of the Status Register.
1 =3D The period interval timer has reached 0 since the last read of the Status Register.

So shouldnt PITS go to 0 if i read it again in the irq handler above, and stop bothering the AIC? Everything works fine if i uncomment the "DisableIt" function call, but just want to be clear about where im going wrong.



Thanx in anticipation



Mayank



Join the Discussion

Have something to add? Share your thoughts — no account required.

Didn't find your answer?

Ask the community — no account required