AVR Tutorials

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, unsi[...]
Using Volatile keyword in embedded code

Using Volatile keyword in embedded code

Volatile is probably least documented keyword in most tutorials and books. Probably this is main cau[...]
Interfacing GPS Module with AVR

Interfacing GPS Module with AVR

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

Software Debouncing of buttons

Connecting a button as an input to a micro-controller 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 a[...]
Interfacing matrix keyboard with AVR

Interfacing matrix keyboard with AVR

Keypad is most widely used input device to provide input from the outside world to the microcontroll[...]
Sensing Temperature Using AVR

Sensing Temperature Using AVR

In this new tutorial, we will be interfacing a LM35 based temperature sensor with ATMEGA32. The 3 ma[...]
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. Ult[...]
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 to[...]
Interfacing shift register with AVR

Interfacing shift register with AVR

Shift register is one of the important thing to learn while designing any embedded system. Using shi[...]
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 mo[...]
Interfacing character LCD to AVR

Interfacing character LCD to AVR

In this tutorial, we will be interfacing a HD44780 character LCD. Although as an alternative you can[...]
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 is one of the topics that may cause some confusion. If you missed something [...]
Programming AVR I2C interface

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 in AVR microcontrollers

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

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

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

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

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

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

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

Accessing AVR EEPROM memory in AVRGCC

AVR microcontrollers have some amount of EEPROM memory on chip. For instance Atmega328 has 1K of byt[...]
No thumbnail available

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

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

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

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

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

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

AVR timers do more than count time

Probably Timer/Counters are complex peripherals in microcontrollers, but as fact they are most commo[...]
No thumbnail available

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

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 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

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

As we talked earlier there are many AVR programmers to choose. The simplest ones are bitbang program[...]
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. Bett[...]
AVR at a glance

AVR at a glance

Any AVR microcontroller is an 8 bit computer in a chip designed and manufactured by ATMEL Corporatio[...]
No thumbnail available

AVR tutorial. Initial word

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

 

Comments are closed