AVR Microcontroller Class 2009: Difference between revisions
From HacDC Wiki
Hexagon5un (talk | contribs) No edit summary |
Hexagon5un (talk | contribs) |
||
Line 18: | Line 18: | ||
* Programmer pinouts: [[Image:FFVH7HBF5UO1JMR.MEDIUM.jpg]] | * Programmer pinouts: [[Image:FFVH7HBF5UO1JMR.MEDIUM.jpg]] | ||
* ATmega pinouts: [[Image:Screenshot-ATmega48-88-168.png|thumb|320px|left]] | * ATmega pinouts: [[Image:Screenshot-ATmega48-88-168.png|thumb|320px|left]] | ||
{{clear}} | |||
== Class 1: Outputs and Bit Math == | == Class 1: Outputs and Bit Math == |
Revision as of 21:06, 9 September 2008
Syllabus, course material, homeworks, photos, etc from an Introduction to Microcontrollers with AVR chips class can be found here.
Class 0: Introduction and Setup
What the AVRs are, what all the pins do, what they can do for you. Then the toolchain: soldering together the programmer kits, getting the software up and running.
Labs: building the kit and running a test LED flasher. (Almost all lab today, little talk.)
Resources:
- Slides from class: Media:class0.pdf
- ATmega48P Datasheets: ATmega48P Summary Datasheet and The Long ATmega48P Datasheet
- Programmer pinouts:
- ATmega pinouts:
Class 1: Outputs and Bit Math
How to make chips speak to the outside world, pin-by-pin. Enough C programming fundamentals to make it work. Pulse-width modulation.
Labs: Cylon eyes and dimming LED's. Extra credit: cross-fading cylon eyes!
Class 2: Inputs: Buttons and Analog-to-Digital conversion (ADC)
Gather data from the world.
Labs: pushbutton organ, light-dependent theremin. Extra credit: something else!
Class 3: Interrupts and Timers
Interrupts call subroutines when certain conditions are true. Timers let you time stuff. Together, they take a lot of the programming burden off your shoulders, and enable really cool stuff.
Labs: Driving servo motors and/or build a better audio synth, use an LED as a light-source and light-sensor. Extra credit: capacitive touch-switch!
Class 4: Serial I/O
Make the micro speak to your computer (and vice-versa). We can also cover other serial protocols (I2C, SPI).
Labs: Basic serial in/out, data-logging light sensor. Maybe SD/MMC cards? Extra credit: ADC + serial output + Python + laptop = ghetto oscilloscope.
Class 5: EEPROM, PROGMEM, etc
Tying up loose ends, special requests. PROGMEM lets you use the program memory to store lots of (constant) data. EEPROM is like flash -- there's not much of it, but it stays when you power off. Can also do misc topic requests here.
Labs: writing out really long strings to serial, saving last known states for battery failure. Maybe I can think up something sexy to use these methods. Maybe not.