AVR Tutorials

Programming AVR I2C interface

Programming AVR I2C interface

I2C interface (also referred to as IIC or TWI) is a widely used interface in embedded applications.[...]
Use fixed integer types to enhance portability

Use fixed integer types to enhance portability

If you have programmed anything with C, you should be familiar with common data types like char, un[...]
Using Volatile keyword in embedded code

Using Volatile keyword in embedded code

Volatile is probably the least documented keyword in most tutorials and books. This is the primary [...]
Interfacing GPS Module with AVR

Interfacing GPS Module with AVR

GPS modem is a device which receives signals from satellites and provides information about latitud[...]
Software Debouncing of buttons

Software Debouncing of buttons

Connecting a button as an input to a microcontroller is a relatively easy task, but there are some [...]
Interfacing DC motor to Atmega32

Interfacing DC motor to Atmega32

In a past tutorial, we saw how to control a servo using AVR. This tutorial will aim at interfacing [...]
Interfacing matrix keyboard with AVR

Interfacing matrix keyboard with AVR

The keypad is the most widely used input device to provide input from the outside world to the micr[...]
Sensing Temperature Using AVR

Sensing Temperature Using AVR

In this new tutorial, we will be interfacing an LM35-based temperature sensor with ATMEGA32. The th[...]
Interfacing Ultrasonic Rangefinder with AVR

Interfacing Ultrasonic Rangefinder with AVR

In this tutorial, we are going to interface ultrasonic rangefinder with the all-popular ATMEGA8. An[...]
Interfacing analog Joystick with AVR

Interfacing analog Joystick with AVR

In this tutorial, we are going to learn something interesting which is already sued by many people [...]
Interfacing shift register with AVR

Interfacing shift register with AVR

The shift register is one of the vital things to learn while designing an embedded system. One can [...]
Controlling servo motor with AVR

Controlling servo motor with AVR

Servo motors are a type of electromechanical actuators that do not rotate continuously like DC/AC m[...]
Interfacing character LCD to AVR

Interfacing character LCD to AVR

In this tutorial, we will be interfacing an HD44780 character LCD. Although as an alternative, you [...]
Accelerometer Interfacing with AVR

Accelerometer Interfacing with AVR

The article covers how to interface an accelerometer with the atmega32/atmega16. Before proceeding,[...]
Interfacing seven segment with Atmega32 (AVR series)

Interfacing seven segment with Atmega32 (AVR series)

A seven-segment display is a set of seven bar-shaped LED (light-emitting diode) elements arranged t[...]
All you need to know about AVR fuses

All you need to know about AVR fuses

AVR lock bits and fuses are one of the topics that may cause some confusion. If you missed somethin[...]
Serial peripheral interface in AVR microcontrollers

Serial peripheral interface in AVR microcontrollers

Serial Peripheral Interface (SPI) is the fastest synchronous communication interface allowing data [...]
ADC on Atmega328. Part 2

ADC on Atmega328. Part 2

After we've learned how to perform simple ADC conversions on AVR microcontroller we can move forwar[...]
ADC on Atmega328. Part 1

ADC on Atmega328. Part 1

Microcontrollers are meant to deal with digital information. They only understand '0' and '1' value[...]
Using Standard IO streams in AVR GCC

Using Standard IO streams in AVR GCC

In the previous tutorial, we learned how to transmit data over USART. By using simple functions, we[...]
Programming AVR USART with AVR-GCC. Part 2

Programming AVR USART with AVR-GCC. Part 2

In the last part of the USART tutorial, we discussed the most straightforward way of implementing U[...]
Programming AVR USART with AVR-GCC. Part 1

Programming AVR USART with AVR-GCC. Part 1

AVR USART tutorial will be a multi-part tutorial as this peripheral is a sophisticated device and n[...]
Using watchdog timer in your projects

Using watchdog timer in your projects

All AVR microcontrollers have an internal watchdog timer that can be successfully used in your proj[...]
Accessing AVR EEPROM memory in AVRGCC

Accessing AVR EEPROM memory in AVRGCC

AVR microcontrollers have some amount of EEPROM memory on-chip. For instance, Atmega328 has 1K of b[...]
Store constants and arrays in program memory

Store constants and arrays in program memory

In many cases, our embedded projects have to deal with various constants or arrays that aren't chan[...]
When your project grows bigger

When your project grows bigger

Until now, we used pretty simple program examples where all code fit into a single file and didn't [...]
AVR Timer2 asynchronous mode

AVR Timer2 asynchronous mode

We have almost gone through main modes of AVR timers. It is impossible to review them all in more d[...]
Programming 16 bit timer on Atmega328

Programming 16 bit timer on Atmega328

Atmega328 has one 16 bit timer, which is more powerful comparing to 8-bit timers. A 16-bit timer is[...]
8-bit Timer/Counter0 operation modes. Part2

8-bit Timer/Counter0 operation modes. Part2

Previously we have revealed only two Timer/Counter0 modes: Normal and CTC. So far, there are a coup[...]
8-bit Timer/Counter0 operation modes.Part1

8-bit Timer/Counter0 operation modes.Part1

As our selected Atmega328 microcontroller has three timers, I think it is best to analyze them sepa[...]
AVR timers do more than count time

AVR timers do more than count time

Timers/Counters are probably one of the most complex peripherals in microcontrollers, but they are [...]
Implementing AVR interrupts

Implementing AVR interrupts

Before we go to the code part, let's what is needed to run interrupts successfully. These condition[...]
Basic understanding of microcontroller interrupts

Basic understanding of microcontroller interrupts

This tutorial is based on Atmega328 microcontroller, which is popular in Arduino boards. So you'll [...]
Controlling AVR I/O ports with AVR-GCC

Controlling AVR I/O ports with AVR-GCC

Controlling pins is one of the first things to learn when learning microcontrollers. It seems that [...]
Setting up AVR development platform

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

Choosing AVR programmer

There are many AVR programmers to choose from. The simplest ones are bitbang programmers. These are[...]
Things needed before you learn AVR

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. Yo[...]
AVR at a glance

AVR at a glance

Any AVR microcontroller is an 8-bit computer in a chip designed and manufactured by ATMEL Corporati[...]
AVR tutorial. Initial word

AVR tutorial. Initial word

AVR family is one of the leading 8-bit microcontrollers in its family. There are many reasons why m[...]

Comments are closed.