This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

Strange behavior of parameters on TMDSRM48USB

First a great thanks to all members of this forum. Your posts helped a lot, especially doing my first steps with the RM48.

Currently i'm working with the TMDSRM48USB. I played around with some features of the kit, when i got stuck with a very strange behavior of this cheap looking piece of code:

_Bool delayRTI(uint16 ms)
{
	volatile uint16 tmp_ms = ms;
	rtiInit();
	rtiEnableNotification(rtiNOTIFICATION_COMPARE0);
	_enable_IRQ();

	rtiStartCounter(rtiCOUNTER_BLOCK0);
	rtiCounter2 = 0;

	while(1)
	{
		if(rtiCounter2 == ms)    // will never be true
		{
			break;
		}
		else
		{
			ledIndicator(1);
}
}
rtiStopCounter(rtiCOUNTER_BLOCK0); rtiDisableNotification((rtiNOTIFICATION_COMPARE0)); //_disableIRQ(); //printf("RTI DONE\n"); return true;
}

The problem is the break condition, where ms and the rtiCounter are compared. The rtiCounter (extern - global) is incremented in the IRS of rtiNotification(uint32 notification). But the condition is never true and the loop is never terminating. But when i use...

rtiCounter == 2 (or any other numeric value)

...it works as expected.

I have checked the variables with the debugger and the values of the parameters are returned properly.

This is driving me nuts....

Thanks 

Jan