AVR GUIDE

This guide was written by me (Q) over several months and, it took way too many hours then I'd like to admit. The information was gathered from the data sheet, bench testing and from other sites that I had come across. This site is my way of giving back to the DIY community that helped me out so many times, thanks guys. Feel free to link to the information but please do not pass it off as your own.

Cheers
Q

NOTE: * = Unfortunately, AVR GUIDE - QEEWiki was removed from Google Sites after Feb 2021.
I'm able to restore it using Wayback Machine. And here is the new start.

Maintainer:

Chayan Mistry
Email: chayanforyou@yahoo.com

Feel free to reach out if you have any questions or need assistance with the AVR GUIDE.

TABLE OF CONTENTS

AVR Basics:
What you need Software/Hardware wise to get started
If your New to AVRs this is the order I recommend reading my tutorials in
The basics of data storage and how we could understand it as humans
The hardest part of microcontroller programming, but the most important thing to understand
Deals mainly with abbreviations and shortcuts and using multiple operands together
How special registers work
Covers the basic power hookup and the ISP hookup
How to program your Arduino from AVR Studios 4 and 5

1.8 - A Few Notes On AVR Programming:

A few important notes on AVR programming


Digital I/O:
Covers Digital Output Hardware and Digital Output AVR Software Code
Covers Digital Input Hardware and Digital Input AVR Software Code


Interrupts:
The basic theory of Interrupts in the AVR micro controller
Covers the External Interrupts
Covers the External Interrupts and the new Pin Change Interrupts


Timers:
Theory common to timers for both ATmega8 and ATmega168/328
8 and 16 bit timers on the ATmega8
8 and 16 bit timers on the ATmega168/328
8 and 16 bit counters on the ATmega8
8 and 16 bit counters on the ATmega168/328

4.3a - Input Capture Unit on the ATmega8:

A unit that can capture an event and give it a time-stamp on the ATmega8

4.3b - Input Capture Unit on the ATmega168/328:

A unit that can capture an event and give it a time-stamp on the ATmega168/328


Analog I/O:
The Closest thing to Analog outputs
Measure incoming voltage levels from analog devices, aka ADC (Analog to Digital Converter)
A strange uncommonly used feature

5.2b - Analog Comparator on the ATmega168/328:

A strange uncommonly used feature


Communication:
Serial Communication protocol

6.1 - I2C / TWI:

A standard two wire buss protocol for controlling Slave devices
Serial Peripheral Interface, a simple and common multi-slave control protocol


Other:

7.0 - EEPROM:

Write data to internal none-volatile memory

7.1 - External Crystals/Resonators:

Hooking up external clock sources

7.2 - Fuse Bits:

Blah, I woun't lie, I really don't want to write this tutorial, but one day I will