AT90USBxxx Keyboard demonstration
Use of this program is subject to Atmel's End User License Agreement.
Please read file lic_page 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
Update license header Fix compiler warning
- V2.0.1
USB Stack
- Improve USB chap9 compliance
- 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 Sep 11 14:37:15 2009 for ATMEL by
1.5.3