AT90USBxxx Keyboard demonstration
Use of this program is subject to Atmel's End User License Agreement.
Please read file LICENSE.TXT for copyright notice.
This embedded application source code illustrates how to implement a HID keyboard application with the AT90USBxxx controller.
This source code is usable with the following compilers:
- IAR Embedded Workbench (5.11A and higher)
- AVRGCC (WinAVR 20080411 and higher).
Support for other compilers may required modifications or attention for:
- compiler.h file
- special registers declaration file
- interrupt subroutines declarations
- V2.0.2
USB Stack
- Improve USB chap9 compliance
- V2.0.1
USB Stack
- Add three possibilities for SN on USB
- Move VBus interrupt to VBus pooling
- Fix USB constant about Device Status
- clean and fix specific request
- fix error HID class compliant
- WorkAround for "Transient perturbation in USB suspend mode generates overconsumption"
New watchdog driver
- V2.0.0 and before
- Old versions
By default the sample code is delivered configured for STK525, but this sample application can be configured for both STK525 or AT90USBKey hardware, see TARGET_BOARD define value in config.h file.
As illustrated in the figure bellow, the application entry point is located is the main.c file. The main function first performs the initialization of a scheduler module and then runs it in an infinite loop. The scheduler is a simple infinite loop calling all its tasks defined in the conf_scheduler.h file. No real time schedule is performed, when a task ends, the scheduler calls the next task defined in the configuration file (conf_scheduler.h).
The sample device application is based on two different tasks:
- The usb_task (usb_task.c associated source file), is the task performing the USB low level enumeration process in device mode.
- The keyboard task performs keyboard decoding and build the HID keyboard repport.
This demonstration application displays a welcome message generated from keyboard input when pushing the select button of the joystick.
Generated on Fri Oct 31 15:59:42 2008 for ATMEL by
1.5.3