This course offers microcontroller programming for beginners, as well as experienced mobile and desktop software developers. It is built around a mobile device accessory project to measure bicycle speed and distance.
An understanding of the limitations of embedded processors is essential for embedded software developers. In Embedded Systems Programming: Getting Started, you’ll learn the essential skills for reading and writing I/O lines, configuring peripherals such as analog and digital converters, counter/timer modules, and the serial interface or UART. First, you'll discover how to configure the clock system of the processor to balance performance and power consumption. Later, you'll explore digital and analog inputs and outputs, and write interrupt service routines to handle real-time tasks quickly. Finally, you’ll delve into the basics of powerful debugging tools by putting the processor to sleep to extend the battery life of the system, and ultimately learn to refactor and organize your code. By the end of this course, you'll have the fundamental skills necessary for embedded firmware development, helping you design and build products of your own.
Jeremy Willden has gone from hardware engineering to software development, his career ranged from the smallest startups to multinational corporations, creating products to give a competitive edge and fuel rapid growth.
Course Overview Hi everyone. My name is Jeremy Willden. Welcome to my course, Embedded Systems Programming: Getting Started. I'm an Embedded Systems Developer with Constellation Labs. Did you know that microcontrollers, the tiny chips that run everything from your dishwasher to aircraft control systems, outnumber computer and mobile processors by a longshot? You can learn how to program these tiny, cheap, low-power computers. In this course, you'll learn essential programming techniques for embedded systems. Some of the major topics that we will cover include analog and digital input and output to interact with the real world, running the processor at high speed for high performance and stopping it completely to save power, debugging techniques so you can see exactly what's going on in the entire chip, refactoring and architecting your code to make it more reusable, maintainable, and extensible. By the end of this course, you'll understand the key principles of microcontroller programming having completed a practical, hands-on project. Before beginning the course, you should be familiar with programming in at least one language. From here, you should feel comfortable diving into embedded systems programming with courses on embedded C++, real-time operating systems, MISRA coding standards for high-reliability systems, energy harvesting and ultra-low power development, and developing for the Arduino and Raspberry Pi platforms. I hope you'll join me on this journey to learn how to sense, control, and automate the world around you with the course, Embedded Systems Programming: Getting Started, at Pluralsight.