i am not sure if the stack is overflow in my project. thank a lot!
I use glabol variables as normal programming in C51. Bug I still have a question about stack while enter ISR, for example: normal run in main() that stack base is 0x30H, SP is 0x33, that means 4 bytes in stack as sequence as "0xFF00, 0xFE00". And now it enter ISR, so push "A, B, DHP, DHL, PSW" to stack. So is it SP 0x33 + 5 = 0x38? It seems so strange in my program.
And now it enter ISR, so push "A, B, DHP, DHL, PSW" to stack. So is it SP 0x33 + 5 = 0x38? It seems so strange in my program. ? When an interrupt happens some process is in progress in the main, let us say the following happens main: load dptr interrupt main: load what dptr points to Now, if the interrupt uses the dptr (changes its contents) what would happen if it did not save the DPTR at entry and resore it on exit. Erik
I have solve my problem. I compile c source file with parameter "SRC" to get ".SRC" assemble file. It pushes ACC, B, DPH, DPL and PSW to stack at the begin of ISR