Beyond Arduino, Pt 3: Interrupt Driven Embedded Applications
4.3 (14 ratings)
Instead of using a simple lifetime average, Udemy calculates a course's star rating by considering a number of different factors such as the number of ratings, the age of ratings, and the likelihood of fraudulent ratings.
380 students enrolled
Wishlisted Wishlist

Please confirm that you want to add Beyond Arduino, Pt 3: Interrupt Driven Embedded Applications to your Wishlist.

Add to Wishlist

Beyond Arduino, Pt 3: Interrupt Driven Embedded Applications

Learn how to develop embedded applications like professionals, not beginners, do.
4.3 (14 ratings)
Instead of using a simple lifetime average, Udemy calculates a course's star rating by considering a number of different factors such as the number of ratings, the age of ratings, and the likelihood of fraudulent ratings.
380 students enrolled
Last updated 3/2017
English
Curiosity Sale
Current price: $10 Original price: $200 Discount: 95% off
30-Day Money-Back Guarantee
Includes:
  • 2 hours on-demand video
  • 16 Articles
  • Full lifetime access
  • Access on mobile and TV
  • Certificate of Completion
What Will I Learn?
  • Create professional grade embedded applications.
  • Think of embedded applications in an Interrupt-Driven fashion.
  • Create responsive embedded applications.
View Curriculum
Requirements
  • Basic Microcontroller Programming.
  • Any Programming Language.
Description

In this third part of the Beyond Arduino series, you'll learn why single-threaded applications are inefficient and perform so bad when handling input/output requests.

You'll learn about the Interrupt-Driven approach to handling asynchronous events and most of its advantages over the traditional approach to do everything inside a loop, which you aren't always aware of because of the immense body of elements that conceal the details in many beginner platforms, like the Arduino, for the sake of simplicity.

You'll learn theoretical, proven facts about the advantages of Interrupts, and you'll also get to try it with your own microcontroller platform on several optional projects that are presented to you as challenges. So this is not exactly a hands-on course, not if you don't want it to be. There are no promises on the projects you’ll make because we won’t force you to build something you didn’t choose to. However, we strongly recommend that you code along. Several microcontroller development platforms are showcased, but you should follow the examples with your own microcontroller.

After grasping this knowledge, we expect you to think differently when designing your embedded applications in the future. By adding this technique to your bag of tricks, you'll get one step closer to making embedded applications like a professional, and hopefully you'll feel less like a beginner.

Who is the target audience?
  • Arduino Developers.
  • Software Developers.
  • Makers.
Students Who Viewed This Course Also Viewed
Curriculum For This Course
60 Lectures
02:17:59
+
Introduction
4 Lectures 15:12
+
Polling vs. Interrupts
19 Lectures 52:54

The Options
03:51

More on Polling
02:30

More on Interrupts
04:48

You'll see how Interrupts resemble baking a cake.

Preview 01:00

Some Modelling Assumptions
01:23

Solution by Polling
01:25

Solution by Interrupts
01:03

How do These Schemes Compare?
06:21

Watch out for Abused Polling
04:10

Comparing the Options
01:24

Best Case Efficiency for Polling
06:20

How the Hotel Analogy Relates to Code Execution
01:40

You'll see how Interrupts resemble the way we (should) handle incoming cellphone calls.

A Simpler Everyday Analogy
02:24

How the Incoming Call Analogy relates to Code Execution
01:51

Polling and Interrupts in Software
03:04

The Polling Version
01:50

The Interrupt Driven Version
02:04

How it All Looks Over Time
03:54
+
Elements of Interrupt Handling Hardware
7 Lectures 19:47
What Makes it all Work
01:16

The Global Interrupt Mask
03:28

Local Interrupt Enable Bits
02:50

Local Interrupt Flags
02:48

Interrupt Service Routines
01:22

Interrupt Vectors
06:48

The Stack
01:15
+
Interrupt Handling Process
11 Lectures 25:39
Prerequisites for interrupts
03:01

What happens when an interrupt occurs
02:11

Let's recall our example
01:57

Function Content Description
03:48

Runtime Example
01:57

Step 1 - The Running Instruction is Completed or Aborted
01:47

Step 2 - The CPU is pushed into the Stack
02:17

Step 3 - The ISR is Retrieved from the Vector
03:21

Step 4 - The Interrupt Service Routine is Executed
03:24

Step 5 - The CPU is Popped from the Stack
00:45

Step 6 - Execution Resumes where it Left Off
01:11
+
Why we need Interrupts
7 Lectures 10:00
Why we need Interrupts
00:35

Responsiveness
04:19

Efficiency
01:09

Portability
01:23

Scalability
01:19

Priority Awareness
00:36

Efficient Energy Consumption
00:36
+
Wait, Polling isn't that bad either
5 Lectures 04:06
Blocking Functions
00:40

Non-Blocking Functions
00:44

This analogy on the logistics of a grocery store makes it obvious when to use blocking functions and when not to.

An Everyday Analogy
01:21

Polling Abused
00:31

Interrupts Abused
00:48
+
Programmer's Mechanism
4 Lectures 01:12
Case Study: ARM Cortex Family
00:09

Case Study: Freescale S08 Architecture
00:05

Case Study: The Arduino Uno!
00:09

Optional Project: Make a Proof of Concept
00:48
+
A Live Demo
1 Lecture 08:08
A Live Demo
08:08
+
Beyond Interrupts
2 Lectures 01:55
Farewell
00:53

Optional Project: Make an Asynchronous Serial Transmitter of Receiver
01:02
About the Instructor
Eduardo Corpeño
4.5 Average rating
126 Reviews
1,628 Students
5 Courses
Electrical & Computer Engineer

I'm an Electrical and Computer Engineer. I've been teaching Electrical and Computer Engineering at undergraduate and graduate for over 10 years now. 

I love hardware, software and teaching.

I have 5 courses on Udemy so far, one on a technique to solve engineering problems easily, and a series of 4 courses (so far) on the electronics and algorithms behind microcontroller platforms.

Among the subjects in the classes I teach on campus, my strongest are Electrical Circuit Theory, Electronic Devices, Digital Design, Computer Architecture, Microcontrollers, Assembly and C Programming for Embedded Applications, Hardware Description Language, Field Programmable Gate Arrays, Artificial Intelligence, Printed Circuit Board Design and Real Time Operating Systems.

Along with two of my finest colleagues, I created one of the first MOOCs in spanish, an introduction to the Raspberry Pi. We wrote a conference paper on the outcome of this very successful course. 

I recently got a Master of Science in Computer Science at Georgia Tech and I loved every minute of it.

Marissa Siliezar
4.5 Average rating
126 Reviews
1,628 Students
5 Courses
Telecom Engineer

Telecom Engineer passionate about new technologies and my family. The general background I have revolves around value added services in mobile services and also product marketing for a major brand of mobile devices. When it comes to hardware design I came across various developer platforms when designing my bachelor's thesis. After 6+ years of experience I became a mommy to my dear Ignacio and a stay at home mommy.