This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

How do software reset

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

Parents
  • 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.

Reply
  • 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.

Children
  • 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