1 / 18

Lecture – 8 Interrupt

Lecture – 8 Interrupt. Outline . Introduction Handling interrupt Interrupt sources Switching interrupt Peripheral interrupts Using two interrupts Conclusions. Interrupts. Interrupts are the most used I/O technique for many systems.

yves
Download Presentation

Lecture – 8 Interrupt

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Lecture – 8Interrupt

  2. Outline • Introduction • Handling interrupt • Interrupt sources • Switching interrupt • Peripheral interrupts • Using two interrupts • Conclusions

  3. Interrupts • Interrupts are the most used I/O technique for many systems. • One problem exists with interrupts the are difficult to troubleshoot. • The ISR is the function called by an interrupt. • Each interrupting source has three control bits, IF (interrupt flag), IE (interrupt enable), and IP (interrupt priority). • The IF flag is set only if an interrupt takes effect and cleared by the program.

  4. Handling interrupts (1) • The mechanism is very similar to CALL: • the present instruction completes. • PC (the address of the next instruction) is saved to the hardware stack • ISR is called at a fixed (by PlCarchitecture) address. • ISR operates as a subroutine (MUST not corrupt any registers/flags/bank settings/W), return (RETFIE) on completion.

  5. Handling interrupts (2) • ISR starts at the specific address. • PC of the interrupted program is saved by hardware in a hardware stack. • STATUS register and any other registers used by ISR are to be saved by the programmer if necessary. • ISR should (1) polls status bits of valid interrupt sources; (2) serve requested; (3) clear their request bits. • Restore registers and RETIF (programmer).

  6. Interrupt sources • Direct pin at PORT B (interruptrequest) • Change of signal at most pins of port B (interrupt on change) • Generated by built-in peripherals (e.g., timers on overflow etc) • Generated by internal watchdog timer - could be used to recover after a hardware malfunction. • Generated when the supply voltage drops below a preset level, or just recover from a power loss. Interrupts can be disabled in general, or any specific interrupt can be disabled.

  7. Why interrupt control is required • How it is possible to handle more than one interrupt? • What will happen if two interrupts occur at the same time? • What will happen if an interrupt occurs while the other one is being served ? • How to protect a critical code from being intrrupted (e.g. injecting a drug to a patient)? BCF INTCON, GIE critical code BSF INTCON, GIE

  8. Interrupt control register • Interrupt flag bits get set when an interrupt condition occurs regardless of the state of its corresponding enable bit or the global enable bit, GIE (INTCON<7>).

  9. Switching interrupts • General IE (GIE) - ensures that the ISR is not interrupted. • IE flags - allow to enable particular interrupts ONLY. • IF flags : indicate what interrupt actually happened.

  10. Example • What event has happened?

  11. Example • What event has happened?

  12. Example • What event has happened?

  13. ISR programming necessities • Initialisation: enable required interrupt, set GIE. • ISR: Clear the IF associated (if not, the same interrupt will occur straight on RETFIE). • ISR: Return using RETFIE.

  14. Peripheral interrupts • Peripheral interrupts enable register (PIE1) • Peripheral interrupts request register (PIR1) • EE-EEPROM, A/D converter, EUSART receive buffer, comparator C2, comparator C1, oscillator fail, EUSART transmit buffer, timer 1 overflow.

  15. Example • PIE1 • PIR1 • What event has happened?

  16. Example • PIE1 • PIR1 • What event has happened? 16

  17. Using two interrupts • E.g., on change and RC(receive). • Initialization of both required BSF INTCON, RBIE BSF PIE1, RCIE BSF INTCON, PEIE BSF INTCON, GIE

  18. Summary • Interrupts allow putting away some background activities for something more important. • Microcontrollers deal with interrupts from free running peripherals and external stimuli. • They need to be enabled using lE flags, and the interrupt source can be determined using the IF flags. • The ISR is placed at a fixed address. • It must not to change anything except its dedicated variables. • Interrupts can be prioritised if more than one is enabled.

More Related