Welcome to Valparaiso University’s next online class, Introduction to Microcontrollers and the C Programming Language. The course will use the same mixed-mode format we use in our lecture-laboratories at Valparaiso University. An emphasis is placed on enabling students to develop their skills by continually practicing with the tools real developers use every day. A few short videos will kick off each of the sections followed by the step-by-step instructions to get you up and running. And, if you have any questions along the way, our embedded system’s team will be here to help. That’s what we’re for – to make you successful.
Benefits of Class
The course is laboratory based. Almost every lecture and section of the course leads directly to a hands-on laboratory assignment. The more practice you get using the “real world” Texas Instruments hardware and software the more proficient you will be.
The course does not waste your time. From the very beginning, we jump right in to your first laboratory assignment – Let’s Get Started.
The course is modular in nature. Are you new to the world of microcontrollers? Great! Start at the beginning, and we’ll teach you everything you need to know. Do you have some background in microcontrollers but want to learn more? Fantastic! You can pick and choose the modules that you need.
The course is packed with information. From the beginnings of the C programming language to advanced microcontroller peripherals, the course teaches you all of the building blocks you would need to build your own electronic systems.
We use lots and lots of examples. We take you step-by-step through the lessons – each time providing sample code and documentation to make sure you are supported through the course.
We are here to help. We are educators with a singular focus of providing a meaningful experience for our students. And, while we cannot do the work for you, we are willing to work WITH you help you succeed.
Section 1 - How Do I Get Started? (Free Preview Available at Udemy)
Lecture 1: What Is This Course All About?
Lecture 2: Course Introduction
Lecture 3: What Is a Microcontroller?
Lecture 4: What Is an Embedded System?
Lecture 5: What Is a Program?
Lecture 6: What Is an Integrated Development Environment?
Lecture 7: ACTION: How Do I Get Started?
Lecture 8: Wrap Up
Lecture 9: Quiz 1: Getting Started
Section 2 - Binary Numbers and Digital Logic (Free Preview Available at Udemy)
Lecture 10: ACTION: What Are Binary and Hexadecimal Numbers?
Lecture 11: ACTION: What Is Digital Logic?
Lecture 12: Wrap Up
Lecture 13: Quiz: Binary Numbers and Digital Logic
Lecture 14: BONUS: Additional Examples
Section 3 - What's Inside of a Microcontroller (Free Preview Available at Udemy)
Lecture 15: What Is Inside a Microcontroller?
Lecture 16: What Is Program Memory?
Lecture 17: What Is Data Memory?
Lecture 18: What Is a Peripheral?
Lecture 19: Wrap Up
Lecture 20: Course Launches September 28th, 2015
Section 4 - Loops in the C Programming Language
Lecture 21: ACTION: What Is a FOR Loop?
Lecture 22: What Is a Flow Chart?
Lecture 23: ACTION: What Is a WHILE Loop?
Lecture 24: Loops Wrap up
Lecture 25: Quiz: Loops in the C Programming Language
Lecture 26: BONUS: Are FOR Loops and WHILE Loops Really the Same Thing?
Lecture 27: BONUS: What Are the Different C Variable Types?
Lecture 28: BONUS: What Are Nested Loops?
Lecture 29: BONUS: What Are the C Shorthand Operators?
Section 5 - Digital Inputs, the P1.1 Button, and the IF Statement
Lecture 30: What Is a Digital Input?
Lecture 31: ACTION: What Is the P1.1 Push Button?
Lecture 32: ACTION: What Is the IF Statement?
Lecture 33: ACTION: What Are Relational Operators?
Lecture 34: ACTION: How Do I Use More Push Buttons and LEDs?
Lecture 35: Digital Inputs Wrap Up
Lecture 36: Quiz: Digital Inputs, Push Buttons, and the IF Statement
Lecture 37: BONUS: What Are BREAK and CONTINUE?
Section 6 - Introduction to Timer Peripherals
Lecture 38: What Is a Timer?
Lecture 39: What Can Timers Count?
Lecture 40: Introduction to Timers Wrap Up
Lecture 41: Quiz: Introduction to Timers
Section 7 - Introduction to the Watchdog Timer Peripheral
Lecture 42: What Is a Watchdog Timer?
Lecture 43: ACTION: How Do I Use the Watchdog Timer?
Lecture 44: Watchdog Timer Peripheral Wrap Up
Lecture 45: Quiz: Watchdog Timer Peripheral
Section 8 - Introduction to the General Purpose Timer
Lecture 46: ACTION: How Do I Use a General Purpose Timer?
Lecture 47: Quiz: General Purpose Timers
Lecture 48: BONUS: How Can I Pet the Watchdog with a General Purpose Timer?
Section 9 - Advanced Features of General Purpose Timers
Lecture 49: ACTION: How Do I Use Two General Purpose Timers to Count at the Same Time?
Lecture 50: Quiz: Advanced Features of General Purpose Timers
Lecture 51: BONUS: How Do I Use Semi-Automatic Pulse Width Modulation (PWM) Mode?
Lecture 52: BONUS: How Do I Use Automatic PWM Mode?
Lecture 53: BONUS: How Do I Use One Timer to Create Multiple Frequency Outputs?
Lecture 54: BONUS: How Do I Count Up and Down with Dead Time?
Lecture 55: BONUS: How Can I Count Pulses with a General Purpose Timer?
Section 10 - Using Functions to Improve Your Microcontroller Program
Lecture 56: ACTION: How Do Functions Improve Your Program?
Lecture 57: Quiz: Functions
Section 11 - Introduction to Interrupt Service Routines
Lecture 58: ACTION: What Are Interrupt Service Routines?
Lecture 59: Quiz: Interrupt Service Routines
Section 12 - Introduction to Low Power Modes
Lecture 60: What Is Low-Power Mode?
Lecture 61: ACTION: How Do I Use Low-Power Mode?
Lecture 62: Low Power Mode Wrap Up
Lecture 63: Quiz: Low-Power Modes
Section 13 - Interrupt Service Routines for Digital Inputs
Lecture 64: ACTION: How Can I Use Interrupts with a Digital Input?
Section 14 - Serial Communication Interfaces
Lecture 65: What Is Serial Communication?
Lecture 66: ACTION: How Can I Use a UART to Talk to Another Microcontroller?
Lecture 67: Serial Communication Wrap Up
Lecture 68: Quiz: Serial Communication
Section 15 - Analog-to-Digital Converters
Lecture 69: ACTION: What Is an Analog Value?
Lecture 70: ACTION: How Do I Use an Analog-to-Digital Converter Peripheral?
Lecture 71: Analog-to-Digital Converter Wrap Up
Lecture 72: Quiz: Analog-to-Digital Converter
Section 16 - Introduction to the Liquid Crystal Display (LCD)
Lecture 73: ACTION: How Can I Use the LCD on the MSP430FR6989 Launchpad?
Lecture 74: ACTION: How Do I Display a Short Word on the LCD?
Lecture 75: ACTION: What Is ASCII and Why Is It Important?
Lecture 76: ACTION: How Do I Create a Scrolling Message on the LCD?
Lecture 77: ACTION: How Do I Display Numbers on the LCD?
Lecture 78: ACTION: How Do I Display Symbols on the LCD?
Lecture 79: Liquid Crystal Display Wrap Up
Lecture 80: Quiz: Liquid Crystal Display
Section 17 - Final Project
Lecture 81: ACTION: Final Project
Section 18 - Wrap Up
Lecture 83: Final Words and Sources of Additional Help
Mark M. Budnik is the Electrical and Computer Engineering Department Chair and the Paul and Cleo Brandt Professor of Engineering at Valparaiso University. He received his bachelor of science degree in electrical engineering from the University of Illinois and his master of science and doctoral degrees in electrical engineering from Purdue University.
Prior to joining the faculty at Valparaiso University in 2006, Mark worked in the semiconductor industry, culminating as a Staff Engineer and the Director of White Goods and Motor Control at Hitachi Semiconductor. In these roles, he had a unique opportunity to work closely with a diverse customer base to identify and establish a number of best practices in embedded systems education.
In his career, he received multiple educational awards from academia and industry including ST Microelectronics, National Semiconductor, Hitachi Semiconductor, Valparaiso University, and the American Society for Engineering Education (ASEE). Most recently, Mark was an ASEE Section Outstanding Teacher of the Year and a finalist for the 2015 ASEE National Outstanding Teaching Award.
Mark is the author of more than fifty book chapters, journal articles, and conference proceedings and the recipient of five best paper/presentation awards. He is a Senior Member of the IEEE and a Fellow of the International Symposium on Quality Electronic Design.