AVR Boards and Sensors

From Experimental Robotics

Jump to: navigation, search

Programming the AVR

AVR microprocessors can be programmed in either Assembler or C code. There are lots of resources freely available on the internet to help anybody with everything from the assembler basics, to the C code for a balancing robot.. ;-)


The AVR instruction set is more orthogonal than most eight-bit microcontrollers, however, it is not completely regular:

* Pointer registers X, Y, and Z have addressing capabilities that are different from each 
  other. 
* Register locations R0 to R15 have different addressing capabilities than register locations
  R16 to R31. 
* I/O ports 0 to 31 have different addressing capabilities than I/O ports 32 to 63. 
* CLR affects flags, while SER does not, even though they are complementary intructions. CLR 
  set all bits to zero and SER sets them to one.
* Math operations such as EOR modify flags while moves/loads/stores/branches such as LDI do 
  not.)


Programming Tools

AVR Freaks A great resource for AVR info

AVR assembler site

WinAVR C programming for AVR

AVR GCC

AVR Guide

Cygwin for AVR development environment

General Avr information

AVR C guide

Atmel AVR manufacturer resources

Personal tools