I want to reset the software inside the interrupt service routine.
((void (code *) (void)) 0x0000) ();
while am using this code only one time executing the code second time it blocking the interrupt..
pls help me
Maybe this is not what you meant, but to get the C8051F3xx parts to reset, I've done this:
void Timer3_ISR(void) interrupt 14 {
//using as Watch-Dog Timer //32msec time-out RSTSRC |= 0x10; }
This isn't a true WDT, but the C8051F3xx parts don't have a real one anyways.
"RSTSRC |= 0x10" will cause the part to reset.
This isn't a true WDT, but the C8051F3xx parts don't have a real one anyways. this "watchdog" is known as "the Intel Kludge". when SILabs decided not to make derivatives any more, but decided to make deviates instead, among the many silly/stupid things they did was to drop the REAL watchdog the derivatives have.
Erik