AVR programming introduction

The Atmel AVR microcontroller architecture has, since its inception in 1996, gained popularity over among the professionals and amateurs alike.

This course is intended to serve as a hands-on introduction into AVR programming by providing complete and explained examples on how to use each of the common on-die peripherals, while also outlining the basic programming and schematics considerations.



At least basic understanding of the following subjects is presumed in this course.

The tasks in this course are intended to be completed using either a bare ATmega8 microcontroller (MCU; or a compatible one) with the Optiboot bootloader preloaded or one of the AVR-based Arduino boards. See the Simplistic device task for a variant of the circuit based on a bare MCU.


The beginning
Simplistic device
Simplistic program
Internal peripherals
Timer basics
Pulse-width modulator
Serial Peripheral Interface
Universal asynchronous receiver/transmitter
Two-wire interface
External peripherals
Nokia 5110 LCD
Complete devices, practical or not
Signal acquisition interface