==== Introduction ==== This is (going to be) a easy tutorial for starting out with basic AVR programming, and also a reference collection so that it sits in one place on the site Comments? Suggestions? Post to the [[http://www.ladyada.net/forums/|forum]]! *[[http://www.ladyada.net/learn/avr/whatisit.html|What is an AVR?]] *Setup for [[http://www.ladyada.net/learn/avr/setup-mac.html|Mac]] and [[http://www.ladyada.net/learn/avr/setup-win.html|Windows]] *[[http://www.ladyada.net/learn/avr/programming.html|How programming works]] *[[http://www.ladyada.net/learn/avr/programmers.html|Choosing a programmer]] *[[http://www.ladyada.net/learn/avr/avrdude.html|Using AVRDUDE ]] <- In progress, click on a link to the left ==== Prerequisites ==== This set of notes does have some prerequisites. It requires two important sets of knowledge: *You must know how to use the command line for your OS, either **Terminal** (Mac, Unix) or **cmd/DOS **(Windows). \\ [[http://www.osxfaq.com/tutorials/LearningCenter/|Here is a tutorial for Macs]] \\ [[http://ubuntuforums.org/showthread.php?t=73885|Here is one for Linux]] (Ubuntu) \\ [[http://cs.sjsu.edu/web_mater/cs46a/cs46alab/lab1/tutorial.html|Here is one for Windows]] *You must know how to program, preferrably in C. \\ The fact is, most microcontrollers are programmed in C, its a lightweight programming language that is well suited to the restrictive environment. You can also do many of these examples in BASIC but I doubt I'll have time to put up those versions \\ [[http://www.cprogramming.com/tutorial.html|Here is a tutorial]] \\ I learned C about 12 years ago from a book that came with a CD and had lots of examples, I think it was "Learn C in 21 days" or some nonsense. It doesn't matter how you do it, but this tutorial assumes that you know what a [[http://www.cprogramming.com/tutorial/c/lesson3.html|for loop]] is and how [[http://www.cprogramming.com/tutorial/bitwise_operators.html|bit-wise arithmetic]] work, etc. \\ You also need to be able to convert hex, binary and decimal (using a calculator). \\ Microcontrollers are tougher to program because there is limited debugging capability.