Chapter 6. Program Organization116 PACSystems* RXi Distributed IO Controller User Manual GFK-2816F6.3 Interrupt-Driven BlocksTimed interrupts can be used to start a block’s execution. These interrupts are generated bythe CPU based on a user-specified time interval with an initial delay (if specified) applied onStop-to-Run transition of the CPU.CautionInterrupt-driven block execution can interrupt the executionof non-interrupt-driven logic. Unexpected results may occurif the interrupting logic and interrupted logic access thesame data. If necessary, Service Request #17 can be used totemporarily mask Timed Interrupt-driven logic fromexecuting when shared data is being accessed.6.3.1 Interrupt HandlingA Timed interrupt can be associated with any block except _MAIN, as long as the block hasno parameters other than an OK output. After an interrupt has been associated with a block,that block executes each time the interrupt trigger occurs. A given block can have multipletimed interrupt triggers associated with it. It is executed each time any one of its associatedinterrupts triggers. For details on how interrupt blocks are prioritized, refer to Section 6.3.3,Interrupt Block Scheduling.If a parameterized block or external block is triggered by an interrupt, it inherits %P data asits %L local data. For example, a %L00005 reference in the parameterized block or C blockactually references %P00005.Note: Timer function blocks do not accumulate time if used in a block that isexecuted as a result of an interrupt.Blocks that are triggered by interrupts can make calls to other blocks. The application stackused during interrupt-driven execution is different from the stack used during normal block-structured program execution. In particular, the nested call limit is different from the limitdescribed for calls from the _MAIN block. If a call results in insufficient stack space tocomplete the call, the CPU logs an Application Stack Overflow fault.