Demonstration Firmware - Atmel AVR
Simple programs for you to learn from. Libraries are required where noted.

UART Demonstration Program
uarttest_atmega32.zip (26K) Archive file of project directory (Atmega32). The Makefile is likely dated. Please create a new one if you use 'make' and command-line processing. 'mfile', part of WinAVR, is a program that helps with makefile creation.
uarttest.hex (7K) Hex file for Atmega32 using the internal oscillator and a 9600 baud UART connection.

A Set of (incomplete) Tools for IR Remote Signal Characterization
irdump.c (3K) Firmware source for a simple system that dumps the time of input capture events out through the UART. This firmware works in conjunction with either a terminal (to view the raw timer counts), or 'ircapture' to do some time calculation and signal viewing. Requires additional libraries and other files for compilation; see the source.
irdump.hex (12K) The Atmega32 object code for irdump.c.
ircapture (47K) A TCL/Tk script that plots information received from an Atmega32 running irdump, provided above. This script still needs a bunch of work, but it is a good starting point. Note that you can edit the script to change parameters (like the serial port used, Atmega32 clock speed used in calculations, etc.). To run this, you need to have TCL/Tk installed on your system. Should run in Linux and Windows.
rcacd.pdf (1422K) A PDF showing sample output from 'ircapture', provided above. This is the information associated with an RCA CD remote controller, pictured in the PDF. Note that different manufacturers (and sometimes even the same manufacturer) use different IR signalling protocols. This suite of tools will not work for all!
ir_rca.h (3K) The header file that was created from the data collected and visualized in rcadcd.pdf. A file like this can be used in your firmware.
irflip (1K) A TCL script to flip the bit order in header file define statements. This can come in handy for more efficient interpretation of the IR-transmitted values. (The suite of firmware routines that I once wrote to interpret these commands were made simpler by having the bit order reversed...)