We are running a survey to help us improve the experience for all of our members. If you see the survey appear, please take the time to tell us about your experience if you can.
You can use the void pointer function sample in simple programs but if you want to use software reset in interrupt routines you can act like this: by calling the int. routine and coming up your condition it will jump to 0x0000 Also the "addr" is unsigned char and SP set as compiler defaults.
void t0_service(void) interrupt 1 using 3 { addr=SP; /* Your Code */ PSW=0; if( /*your condition to jump 0x0000*/ ){ *(unsigned char *)(addr)=0; *(unsigned char *)(addr-1)=0; *(unsigned char *)(addr-2)=0; *(unsigned char *)(addr-3)=0; *(unsigned char *)(addr-4)=0; *(unsigned char *)(addr-5)=0; *(unsigned char *)(addr-6)=0; *(unsigned char *)(addr-7)=0; return; } }
http://www.keil.com/support/docs/307.htm