AVR Tutorials
Programming AVR I2C interface
I2C (also referred as IIC or TWI) is widely used interface in embedded applications. Two wire bus in[...]
Serial peripheral interface in AVR microcontrollers
Serial Peripheral Interface (SPI) is fastest synchronous communication interface allowing data trans[...]
ADC on Atmega328. Part 2
After we've learned how to performs simple ADC conversions on AVR microcontroller we can move forwar[...]
ADC on Atmega328. Part 1
Microcontrollers are meant to deal with digital information. They only understant '0' and '1' values[...]
Using Standard IO streams in AVR GCC
In previous tutorial we learned how to transmit data over USART. By using simple functions we can se[...]
Programming AVR USART with AVR-GCC. Part 2
In previous part of USART tutorial we have discussed about simplest way of implementing USART transm[...]
Programming AVR USART with AVR-GCC. Part 1
AVR USART tutorial is gonna be multi-part tutorial as this peripheral is quite complex device and ne[...]
Using watchdog timer in your projects
All AVR microcontrollers have internal watchdog timer that can be successfully used in your projects[...]
Accessing AVR EEPROM memory in AVRGCC
AVR microcontrollers have some amount of EEPROM memory on chip. For instance Atmega328 has 1K of byt[...]
Store constants and arrays in program memory
In many cases our embedded projects have to deal with various constants or arrays that aren't change[...]
When your project grows bigger
Until now we used pretty simple program examples where all code fit in to single file and didn't loo[...]
AVR Timer2 asynchronous mode
We have almost gone through main modes of AVR timers. It is impossible to review them all in more de[...]
Programming 16 bit timer on Atmega328
Atmega328 has one 16 bit timer which is more powerful comparing to 8 bit timers. 16 bit timer is c[...]
8-bit Timer/Counter0 operation modes.Part2
Previously we have revealed only two Timer/Counter0 modes: Normal and CTC. So far thre are couple mo[...]
8-bit Timer/Counter0 operation modes.Part1
As our selected Atmega328 microcontroller has three timers, I think it is best to analyze them separ[...]
AVR timers do more than count time
Probably Timer/Counters are complex peripherals in microcontrollers, but as fact they are most commo[...]
Implementing AVR interrupts
Before we go to the code part lets what is needed in order to run interrupts successfully. These co[...]
Basic understanding of microcontroller interrupts
Earlier I've made a mistake by referring this tutorial to older AVR family microcontrollers like Atm[...]
Controlling AVR I/O ports with AVR-GCC
Controlling pins is one of the first things to learn when learning microcontrollers. It seems that e[...]
Setting up AVR development platform
You can be encouraged to use various types of AVR development tools. Most of them cost money to get [...]
Choosing AVR programmer
As we talked earlier there are many AVR programmers to choose. The simplest ones are bitbang program[...]
Things needed before you learn AVR
There are several things you need to do before learning AVR. First of all you need an AVR chip. Bett[...]
AVR at a glance
Any AVR microcontroller is an 8 bit computer in a chip designed and manufactured by ATMEL Corporatio[...]
AVR tutorial. Initial word
AVR family is one of the leading 8 bit microcontrollers in its family. There are many reasons why ma[...]





















