Email: Password: Remember Me | Create Account (Free)

Back to Subject List

Old thread has been locked -- no new posts accepted in this thread
???
08/15/05 11:57
Read: times


 
#99410 - excellent point!
Responding to: ???'s previous message
Oleg Sergeev said:

- if an interrupt with this code has high priority level and occures during low-priority one is in progress then after recovering from program initialization you will lost low-level interrupts in the whole. It is because they are still blocked (need another reti).

I think I have already seen a solution for this, too - wasn't there a similar problem discussed here a couple of months ago?
So I would modify the few lines from my previous post as:
   clr   ea   ;disable all interrupt (better maybe  mov ie,#0)
   call  RetiSub   ;release internal interrupt-in-progress flag
   call  RetiSub   ;and again to clear also high-level interrupts
;add more call RetiSub 
; if more than 2 interrupt levels are available (e.g. in RD2s)
   jmp   0   ;restart 
;restart contains explicit reset of stack pointer, 
; so no other stack housekeeping is needed
RetiSub:
   reti
Jan Waclawek


List of 31 messages in thread
TopicAuthorDate
Interrupt question            01/01/70 00:00      
   Interrupt            01/01/70 00:00      
      then how?            01/01/70 00:00      
         One way is to            01/01/70 00:00      
            Little more description            01/01/70 00:00      
               Routine            01/01/70 00:00      
   interrupt exit            01/01/70 00:00      
      tried but gives error            01/01/70 00:00      
         assembler???            01/01/70 00:00      
            Assembler is Pinnacle            01/01/70 00:00      
               go to Pinnacle support            01/01/70 00:00      
               Asking for solutions            01/01/70 00:00      
      Now THAT was elegant!            01/01/70 00:00      
   use WDT to RESET the micro            01/01/70 00:00      
   some comments            01/01/70 00:00      
      Its like this            01/01/70 00:00      
         Emergency stop            01/01/70 00:00      
            I understand            01/01/70 00:00      
               If you REALLY want to do it            01/01/70 00:00      
                  optimizing            01/01/70 00:00      
                  possible troubles            01/01/70 00:00      
                     excellent point!            01/01/70 00:00      
                        This is not a solution            01/01/70 00:00      
                           Do it as you wish            01/01/70 00:00      
                              Makes sense            01/01/70 00:00      
                              the consensus last time was that the onl            01/01/70 00:00      
                                 WD reset - yes, why not            01/01/70 00:00      
                                    You say "no" and agree            01/01/70 00:00      
                                       no no = yes            01/01/70 00:00      
                                    Watchdog output            01/01/70 00:00      
                              Thanks, Done            01/01/70 00:00      

Back to Subject List