hacdc-wiki/Electronics/AVR_Tutorial.md
2024-06-13 15:21:56 -04:00

71 lines
2.5 KiB
Markdown
Executable File

Warning: this page is a nearly-completely incomplete skeleton. For the
class (and supporting materials) that actually came to be, see [AVR
Microcontroller Class](AVR_Microcontroller_Class "wikilink"). This
section needs a lot of development, so if you're in the mood please feel
free.
There's a lot of good information out there about programming
micro-controllers, but I couldn't find a good, stepwise, lesson-based
tutorial. Since a bunch of the HacDC folks are just learning their way
around, I thought it'd be fun to put together a mini-course based on the
Atmel AVR platform and GNU-GCC. The idea is to have each lesson doable
in an hour or so
What follows is a mix of how-to and code snippets and peoples'
experience walking through it all. If you're following along and want to
contribute, feel free.
[Useful AVR Links](Useful_AVR_Links "wikilink")
## The Basics (take these in order):
[AVR Lesson: Setup](AVR_Lesson:_Setup "wikilink"): Get a programmer, a
chip, the software, and some parts
[AVR Lesson: Output Pins I](AVR_Lesson:_Output_Pins_I "wikilink"): Basic
output and LED Blinky example
[AVR Lesson: Output Pins II](AVR_Lesson:_Output_Pins_II "wikilink"):
Binary math and Cylon Eyes
[AVR Lesson: Input Pins](AVR_Lesson:_Input_Pins "wikilink"): Debouncing
and Button-triggered Cylon Eyes
[AVR Lesson: Timers](AVR_Lesson:_Timers "wikilink"): Clocks and how to
use them.
[AVR Lesson: Interrupts](AVR_Lesson:_Interrupts "wikilink"):
[AVR Lesson: Pulse-width
Modulation](AVR_Lesson:_Pulse-width_Modulation "wikilink"): An easy way
to get analog outputs. Dimming LEDs or Crossfading Cylon Eyes
[AVR Lesson: Analog-digital
Conversion](AVR_Lesson:_Analog-digital_Conversion "wikilink"):
Automatical Dimming Night Light
## Advanced Material (mix-n-match):
[AVR Lesson: Watchdog Timers](AVR_Lesson:_Watchdog_Timers "wikilink"):
[AVR Lesson: I2C](AVR_Lesson:_I2C "wikilink")
[AVR Lesson: Using Program
Memory](AVR_Lesson:_Using_Program_Memory "wikilink"):
[AVR Lesson: Motor Driving](AVR_Lesson:_Motor_Driving "wikilink"):
[AVR Lesson: Servo Control](AVR_Lesson:_Servo_Control "wikilink"):
[AVR Lesson: State Machines](AVR_Lesson:_State_Machines "wikilink"):
[AVR Lesson: Sound](AVR_Lesson:_Sound "wikilink"):
[AVR Lesson: Serial I/O](AVR_Lesson:_Serial_I/O "wikilink"):
[AVR Lesson: USB](AVR_Lesson:_USB "wikilink"):
[AVR Lesson: Interfacing with External
Memory](AVR_Lesson:_Interfacing_with_External_Memory "wikilink")
[Category: AVR Tutorial](Category:_AVR_Tutorial "wikilink")