| /* Copyright (c) 2004-2006 Joerg Wunsch |
| All rights reserved. |
| |
| Redistribution and use in source and binary forms, with or without |
| modification, are permitted provided that the following conditions are met: |
| |
| * Redistributions of source code must retain the above copyright |
| notice, this list of conditions and the following disclaimer. |
| * Redistributions in binary form must reproduce the above copyright |
| notice, this list of conditions and the following disclaimer in |
| the documentation and/or other materials provided with the |
| distribution. |
| |
| THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" |
| AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE |
| IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE |
| ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE |
| LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR |
| CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF |
| SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS |
| INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN |
| CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) |
| ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE |
| POSSIBILITY OF SUCH DAMAGE. */ |
| |
| /* $Id: all-demos.dox 1124 2006-08-29 19:45:06Z joerg_wunsch $ */ |
| |
| /** \defgroup demos Demo projects |
| |
| Various small demo projects are provided to illustrate several |
| aspects of using the opensource utilities for the AVR controller |
| series. It should be kept in mind that these demos serve mainly |
| educational purposes, and are normally not directly suitable for use |
| in any production environment. Usually, they have been kept as |
| simple as sufficient to demonstrate one particular feature. |
| |
| The \ref demo_project "simple project" is somewhat like the "Hello |
| world!" application for a microcontroller, about the most simple |
| project that can be done. It is explained in good detail, to allow |
| the reader to understand the basic concepts behind using the tools |
| on an AVR microcontroller. |
| |
| The \ref largedemo "more sophisticated demo project" builds on top |
| of that simple project, and adds some controls to it. It touches |
| a number of avr-libc's basic concepts on its way. |
| |
| A \ref stdiodemo "comprehensive example on using the standard IO facilities" |
| intends to explain that complex topic, using a |
| practical microcontroller peripheral setup with one RS-232 |
| connection, and an HD44780-compatible industry-standard LCD |
| display. |
| |
| The \ref twi_demo project explains the use of the two-wire hardware |
| interface (also known as "I2C") that is present on many AVR |
| controllers. |
| |
| Finally, the \ref asmdemo demo shows how C and assembly language |
| source files can collaborate within one project. While the overall |
| project is managed by a C program part for easy maintenance, |
| time-critical parts are written directly in manually optimized |
| assembly language for shortest execution times possible. Naturally, |
| this kind of project is very closely tied to the hardware design, |
| thus it is custom-tailored to a particular controller type and |
| peripheral setup. As an alternative to the assembly-language |
| solution, this project also offers a C-only implementation |
| (deploying the exact same peripheral setup) based on a more |
| sophisticated (and thus more expensive) but pin-compatible |
| controller. |
| |
| While the simple demo is meant to run on about any AVR setup |
| possible where a LED could be connected to the OCR1[A] output, |
| the \ref largedemo "large" and \ref stdiodemo "stdio" demos are |
| mainly targeted to the Atmel STK500 starter kit, and the |
| \ref twi_demo "TWI" example requires a controller where some |
| 24Cxx two-wire EEPPROM can be connected to. For the STK500 |
| demos, the default CPU (either an AT90S8515 or an ATmega8515) |
| should be removed from its socket, and the ATmega16 that ships |
| with the kit should be inserted into socket SCKT3100A3. The |
| ATmega16 offers an on-board ADC that is used in the |
| \ref largedemo "large" demo, and all AVRs with an ADC feature |
| a different pinout than the industry-standard compatible |
| devices. |
| |
| In order to fully utilize the \ref largedemo "large" demo, a |
| female 10-pin header with cable, connecting to a 10 kOhm |
| potentiometer will be useful. |
| |
| For the \ref stdiodemo "stdio" demo, an industry-standard |
| HD44780-compatible LCD display of at least 16x1 characters |
| will be needed. Among other things, the |
| <a href="http://ssl.bulix.org/projects/lcd4linux/">LCD4Linux</a> |
| project page describes many things around these displays, |
| including common pinouts. |
| |
| */ |