??? 01/02/09 08:35 Read: times |
#161254 - LJMP 0 is not a Reset Responding to: ???'s previous message |
Hello
The 8051 controller does not reset the internal interrupt level state, if the program is restarted with a LJMP 0. So, if a LJMP 0 is done from inside a interrupt function, of a nested interrupt function, the problem you describe will show. You can (just as an example) add to your startup code following code: LabelA: SJMP LabelC LabelB: RETI LabelC: MOV R0, #4 ; The maximum nested interrupt level possible LCALL LabelB ; Execute a RETI DJNZ R0, LabelC This hint does not mean, that a real reset wouldn't be better; but this was not your question. Best regards Juergen |
Topic | Author | Date |
Returning from the timer without using RETI | 01/01/70 00:00 | |
LJMP 0 is not a Reset | 01/01/70 00:00 | |
Correction | 01/01/70 00:00 | |
Problem solved![]() | 01/01/70 00:00 | |
any means of exit from an ISR ... | 01/01/70 00:00 |