Part of the project I’m working on requires a timer-driven interrupt. To test the feasibility of using Timer A I wrote this short code:
unsigned long int c,s,j;
root interrupt void TimerAISR()
{
c=MS_TIMER-s;
//j=RdPortI(TACSR);
s=MS_TIMER;
}
main ()
{
s=MS_TIMER;
WrPortI(TAPR,NULL,0x01);
WrPortI(TAT7R,NULL,255);
SetVectIntern(0x0A,TimerAISR);
WrPortI(TACSR,&TACSRShadow,0x80|0x01);
WrPortI ( TACR, &TACRShadow,0x01);
while (1) printf("%ld %ld
",c,j);
}
All of this compiles fine on the RCM3400 board I work with. However, the code does not execute, and an error message pops up: “While Debugging: Timeout while waiting for response from target.”
On the other hand, when I declare TimerAISR() as void (as opposed to root interrupt void), everything works fine. What am I doing wrong? Or is there some hardware defect on my board?