# 224: Interrupts to Interrupt Interrupts

- Show: [Embedded.fm](https://hardwarepodcasts.com/podcast/embedded-fm)
- Published: 2017-11-22
- Length: 1h 18m
- Episode: 224
- Page: https://hardwarepodcasts.com/podcast/embedded-fm/2017-11-22-224-interrupts-to-interrupt-interrupts
- Listen: https://makingembeddedsystems.libsyn.com/224-interrupts-to-interrupt-interrupts

## Summary

Andrei Chichak, an embedded systems developer at CBF Systems and author of the Embedded Wednesdays blog, joins hosts Elecia White and Christopher White to explain the fundamentals of interrupts. They contrast the Arduino 'super loop' polling model with asynchronous interrupt handling, detailing how hardware triggers pre-arranged Interrupt Service Routines (ISRs) via vector tables. The discussion covers critical best practices, such as keeping ISRs short to minimize latency, using the `volatile` keyword for shared variables, and managing concurrency through flags or mutexes to avoid race conditions and nested interrupt issues.

## Chapters

- [0:06](https://hardwarepodcasts.com/podcast/embedded-fm/2017-11-22-224-interrupts-to-interrupt-interrupts#t=6) Introduction: Andrei Chichak and the Interrupt Joke
- [2:50](https://hardwarepodcasts.com/podcast/embedded-fm/2017-11-22-224-interrupts-to-interrupt-interrupts#t=170) Polling vs. Interrupts: The Arduino Super Loop
- [7:28](https://hardwarepodcasts.com/podcast/embedded-fm/2017-11-22-224-interrupts-to-interrupt-interrupts#t=448) Defining the Interrupt Service Routine (ISR) and Vector Tables
- [15:31](https://hardwarepodcasts.com/podcast/embedded-fm/2017-11-22-224-interrupts-to-interrupt-interrupts#t=931) ISR Best Practices: Minimizing Execution Time and Clearing Flags
- [23:01](https://hardwarepodcasts.com/podcast/embedded-fm/2017-11-22-224-interrupts-to-interrupt-interrupts#t=1381) Concurrency, Volatile Variables, and Re-entrancy
- [34:44](https://hardwarepodcasts.com/podcast/embedded-fm/2017-11-22-224-interrupts-to-interrupt-interrupts#t=2084) Latency, Jitter, and the Cost of Long Interrupts
- [50:50](https://hardwarepodcasts.com/podcast/embedded-fm/2017-11-22-224-interrupts-to-interrupt-interrupts#t=3050) Button Bounce and Spurious Interrupts
- [56:19](https://hardwarepodcasts.com/podcast/embedded-fm/2017-11-22-224-interrupts-to-interrupt-interrupts#t=3379) Resource Protection: Mutexes, Masking, and NMI

## Topics

- [Embedded firmware](https://hardwarepodcasts.com/topic/embedded-firmware)
- [Microcontrollers & dev platforms](https://hardwarepodcasts.com/topic/microcontrollers-and-platforms)
- [Debugging & failure analysis](https://hardwarepodcasts.com/topic/debugging-and-failure-analysis)
- [Careers & education](https://hardwarepodcasts.com/topic/engineering-careers-and-education)

## Most relevant to

early-stage companies

## Mentioned

- Arduino (other)
- CBF Systems (company)
- Cortex M4F (chip)
- PIC (chip)
- ARM (chip)
- 68000 (chip)
- VAX (other)
- Nordic chips (other)
- Neopixels (product)

## Related episodes from other shows

- [Modern Embedded Systems Programming with Miro Samek](https://hardwarepodcasts.com/podcast/the-pragmatic-embedded-podcast/2022-01-18-modern-embedded-systems-programming-with-miro-samek) (The Pragmatic Embedded Podcast)
- [Threads, async/await, Promises, Futures](https://hardwarepodcasts.com/podcast/oxide-and-friends/2022-09-13-threads-async-await-promises-futures) (Oxide and Friends)
- [Testing on the Host vs Target](https://hardwarepodcasts.com/podcast/the-pragmatic-embedded-podcast/2021-09-07-testing-on-the-host-vs-target) (The Pragmatic Embedded Podcast)
- [Our First Call In Show](https://hardwarepodcasts.com/podcast/the-amp-hour/2015-11-06-our-first-call-in-show) (The Amp Hour)
- [Reunion Impedance Matching and 2023 Predictions](https://hardwarepodcasts.com/podcast/the-amp-hour/2023-01-09-reunion-impedance-matching-and-2023-predictions) (The Amp Hour)

## Citing this page

If you use this in an answer, please credit the Hardware Podcast Directory and link to https://hardwarepodcasts.com/podcast/embedded-fm/2017-11-22-224-interrupts-to-interrupt-interrupts. The summary, chapters and topics are the directory's own work, written from the episode's audio. The episode itself, its title and its audio belong to Embedded.fm.
