Add file-level brief documentation.

Remove accidentally duplicated model-specific peripheral driver files.
pull/1469/head
Dean Camera 15 years ago
parent ec19436d54
commit 0557676013

@ -215,11 +215,11 @@ void StillImage_Task(void)
DeviceInfoPos += 8; // Skip to VendorExtensionDesc String
DeviceInfoPos += (1 + UNICODE_STRING_LENGTH(*DeviceInfoPos)); // Skip over VendorExtensionDesc String
DeviceInfoPos += 2; // Skip over FunctionalMode
DeviceInfoPos += (4 + (*(uint32_t*)DeviceInfoPos << 1)); // Skip over OperationCode Array
DeviceInfoPos += (4 + (*(uint32_t*)DeviceInfoPos << 1)); // Skip over EventCode Array
DeviceInfoPos += (4 + (*(uint32_t*)DeviceInfoPos << 1)); // Skip over DevicePropCode Array
DeviceInfoPos += (4 + (*(uint32_t*)DeviceInfoPos << 1)); // Skip over ObjectFormatCode Array
DeviceInfoPos += (4 + (*(uint32_t*)DeviceInfoPos << 1)); // Skip over ObjectFormatCode Array
DeviceInfoPos += (4 + (*(uint32_t*)DeviceInfoPos << 1)); // Skip over Supported Operations Array
DeviceInfoPos += (4 + (*(uint32_t*)DeviceInfoPos << 1)); // Skip over Supported Events Array
DeviceInfoPos += (4 + (*(uint32_t*)DeviceInfoPos << 1)); // Skip over Supported Device Properties Array
DeviceInfoPos += (4 + (*(uint32_t*)DeviceInfoPos << 1)); // Skip over Capture Formats Array
DeviceInfoPos += (4 + (*(uint32_t*)DeviceInfoPos << 1)); // Skip over Image Formats Array
/* Extract and convert the Manufacturer Unicode string to ASCII and print it through the USART */
char Manufacturer[*DeviceInfoPos];

@ -29,6 +29,7 @@
*/
/** \file
* \brief Supported board hardware defines.
*
* This file contains constants which can be passed to the compiler (via setting the macro BOARD) in the
* user project makefile using the -D option to configure the library board-specific drivers.

@ -29,6 +29,7 @@
*/
/** \file
* \brief Common library convenience macros and functions.
*
* This file contains macros which are common to all library elements, and which may be useful in user code. It
* also includes other common headers, such as Atomic.h, FunctionAttributes.h and BoardTypes.h.

@ -29,6 +29,7 @@
*/
/** \file
* \brief AVR-GCC special function attribute macros.
*
* This file contains macros for applying GCC specific attributes to functions to control various optimizer
* and code generation features of the compiler. Attributes may be placed in the function prototype in any

@ -811,7 +811,7 @@ HTML_FOOTER =
# the style sheet file to the HTML output directory, so don't put your own
# stylesheet in the HTML output directory as well, or it will be erased!
HTML_STYLESHEET =
HTML_STYLESHEET = Doxygen.css
# If the HTML_TIMESTAMP tag is set to YES then the footer of each generated HTML
# page will contain the date and time when the page was generated. Setting

@ -0,0 +1,547 @@
/* The standard CSS for doxygen */
body, table, div, p, dl {
font-family: Lucida Grande, Verdana, Geneva, Arial, sans-serif;
font-size: 12px;
}
/* @group Heading Levels */
h1 {
text-align: center;
font-size: 150%;
}
h2 {
font-size: 120%;
}
h3 {
font-size: 100%;
}
dt {
font-weight: bold;
}
div.multicol {
-moz-column-gap: 1em;
-webkit-column-gap: 1em;
-moz-column-count: 3;
-webkit-column-count: 3;
}
p.startli, p.startdd, p.starttd {
margin-top: 2px;
}
p.endli {
margin-bottom: 0px;
}
p.enddd {
margin-bottom: 4px;
}
p.endtd {
margin-bottom: 2px;
}
/* @end */
caption {
font-weight: bold;
}
span.legend {
font-size: 70%;
text-align: center;
}
h3.version {
font-size: 90%;
text-align: center;
}
div.qindex, div.navtab{
background-color: #e8eef2;
border: 1px solid #84b0c7;
text-align: center;
margin: 2px;
padding: 2px;
}
div.qindex, div.navpath {
width: 100%;
line-height: 140%;
}
div.navtab {
margin-right: 15px;
}
/* @group Link Styling */
a {
color: #153788;
font-weight: normal;
text-decoration: none;
}
.contents a:visited {
color: #1b77c5;
}
a:hover {
text-decoration: underline;
}
a.qindex {
font-weight: bold;
}
a.qindexHL {
font-weight: bold;
background-color: #6666cc;
color: #ffffff;
border: 1px double #9295C2;
}
.contents a.qindexHL:visited {
color: #ffffff;
}
a.el {
font-weight: bold;
}
a.elRef {
}
a.code {
color: #3030f0;
}
a.codeRef {
color: #3030f0;
}
/* @end */
dl.el {
margin-left: -1cm;
}
.fragment {
font-family: monospace, fixed;
font-size: 105%;
}
pre.fragment {
border: 1px solid #CCCCCC;
background-color: #f5f5f5;
padding: 4px 6px;
margin: 4px 8px 4px 2px;
overflow: auto;
word-wrap: break-word;
font-size: 9pt;
line-height: 125%;
}
div.ah {
background-color: black;
font-weight: bold;
color: #ffffff;
margin-bottom: 3px;
margin-top: 3px
}
div.groupHeader {
margin-left: 16px;
margin-top: 12px;
margin-bottom: 6px;
font-weight: bold;
}
div.groupText {
margin-left: 16px;
font-style: italic;
}
body {
background: white;
color: black;
margin-right: 20px;
margin-left: 20px;
}
td.indexkey {
background-color: #e8eef2;
font-weight: bold;
border: 1px solid #CCCCCC;
margin: 2px 0px 2px 0;
padding: 2px 10px;
}
td.indexvalue {
background-color: #e8eef2;
border: 1px solid #CCCCCC;
padding: 2px 10px;
margin: 2px 0px;
}
tr.memlist {
background-color: #f0f0f0;
}
p.formulaDsp {
text-align: center;
}
img.formulaDsp {
}
img.formulaInl {
vertical-align: middle;
}
div.center {
text-align: center;
margin-top: 0px;
margin-bottom: 0px;
padding: 0px;
}
div.center img {
border: 0px;
}
img.footer {
border: 0px;
vertical-align: middle;
}
/* @group Code Colorization */
span.keyword {
color: #008000
}
span.keywordtype {
color: #604020
}
span.keywordflow {
color: #e08000
}
span.comment {
color: #800000
}
span.preprocessor {
color: #806020
}
span.stringliteral {
color: #002080
}
span.charliteral {
color: #008080
}
span.vhdldigit {
color: #ff00ff
}
span.vhdlchar {
color: #000000
}
span.vhdlkeyword {
color: #700070
}
span.vhdllogic {
color: #ff0000
}
/* @end */
.search {
color: #003399;
font-weight: bold;
}
form.search {
margin-bottom: 0px;
margin-top: 0px;
}
input.search {
font-size: 75%;
color: #000080;
font-weight: normal;
background-color: #e8eef2;
}
td.tiny {
font-size: 75%;
}
.dirtab {
padding: 4px;
border-collapse: collapse;
border: 1px solid #84b0c7;
}
th.dirtab {
background: #e8eef2;
font-weight: bold;
}
hr {
height: 0px;
border: none;
border-top: 1px solid #666;
}
hr.footer {
height: 1px;
}
/* @group Member Descriptions */
.mdescLeft, .mdescRight,
.memItemLeft, .memItemRight,
.memTemplItemLeft, .memTemplItemRight, .memTemplParams {
background-color: #FAFAFA;
border: none;
margin: 4px;
padding: 1px 0 0 8px;
}
.mdescLeft, .mdescRight {
padding: 0px 8px 4px 8px;
color: #555;
}
.memItemLeft, .memItemRight, .memTemplParams {
border-top: 1px solid #ccc;
}
.memItemLeft, .memTemplItemLeft {
white-space: nowrap;
}
.memTemplParams {
color: #606060;
white-space: nowrap;
}
/* @end */
/* @group Member Details */
/* Styles for detailed member documentation */
.memtemplate {
font-size: 80%;
color: #606060;
font-weight: normal;
margin-left: 3px;
}
.memnav {
background-color: #e8eef2;
border: 1px solid #84b0c7;
text-align: center;
margin: 2px;
margin-right: 15px;
padding: 2px;
}
.memitem {
padding: 0;
margin-bottom: 10px;
}
.memname {
white-space: nowrap;
font-weight: bold;
margin-left: 6px;
}
.memproto {
border-top: 1px solid #84b0c7;
border-left: 1px solid #84b0c7;
border-right: 1px solid #84b0c7;
padding: 0;
background-color: #d5e1e8;
font-weight: bold;
/* firefox specific markup */
background-image: -moz-linear-gradient(rgba(228, 233, 245, 1.0) 0%, rgba(193, 205, 232, 1.0) 100%);
-moz-box-shadow: rgba(0, 0, 0, 0.15) 5px 5px 5px;
-moz-border-radius-topright: 8px;
-moz-border-radius-topleft: 8px;
/* webkit specific markup */
background-image: -webkit-gradient(linear, 0% 0%, 0% 100%, from(rgba(228, 233, 245, 1.0)), to(rgba(193, 205, 232, 1.0)));
-webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15);
-webkit-border-top-right-radius: 8px;
-webkit-border-top-left-radius: 8px;
}
.memdoc {
border-bottom: 1px solid #84b0c7;
border-left: 1px solid #84b0c7;
border-right: 1px solid #84b0c7;
padding: 2px 5px;
background-color: #eef3f5;
border-top-width: 0;
/* firefox specific markup */
-moz-border-radius-bottomleft: 8px;
-moz-border-radius-bottomright: 8px;
-moz-box-shadow: rgba(0, 0, 0, 0.15) 5px 5px 5px;
/* webkit specific markup */
-webkit-border-bottom-left-radius: 8px;
-webkit-border-bottom-right-radius: 8px;
-webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15);
}
.paramkey {
text-align: right;
}
.paramtype {
white-space: nowrap;
}
.paramname {
color: #602020;
white-space: nowrap;
}
.paramname em {
font-style: normal;
}
/* @end */
/* @group Directory (tree) */
/* for the tree view */
.ftvtree {
font-family: sans-serif;
margin: 0.5em;
}
/* these are for tree view when used as main index */
.directory {
font-size: 9pt;
font-weight: bold;
}
.directory h3 {
margin: 0px;
margin-top: 1em;
font-size: 11pt;
}
/*
The following two styles can be used to replace the root node title
with an image of your choice. Simply uncomment the next two styles,
specify the name of your image and be sure to set 'height' to the
proper pixel height of your image.
*/
/*
.directory h3.swap {
height: 61px;
background-repeat: no-repeat;
background-image: url("yourimage.gif");
}
.directory h3.swap span {
display: none;
}
*/
.directory > h3 {
margin-top: 0;
}
.directory p {
margin: 0px;
white-space: nowrap;
}
.directory div {
display: none;
margin: 0px;
}
.directory img {
vertical-align: -30%;
}
/* these are for tree view when not used as main index */
.directory-alt {
font-size: 100%;
font-weight: bold;
}
.directory-alt h3 {
margin: 0px;
margin-top: 1em;
font-size: 11pt;
}
.directory-alt > h3 {
margin-top: 0;
}
.directory-alt p {
margin: 0px;
white-space: nowrap;
}
.directory-alt div {
display: none;
margin: 0px;
}
.directory-alt img {
vertical-align: -30%;
}
/* @end */
address {
font-style: normal;
color: #333;
}
table.doxtable {
border-collapse:collapse;
}
table.doxtable td, table.doxtable th {
border: 1px solid #153788;
padding: 3px 7px 2px;
}
table.doxtable th {
background-color: #254798;
color: #FFFFFF;
font-size: 110%;
padding-bottom: 4px;
padding-top: 5px;
text-align:left;
}
p {padding-left: 20px;}

@ -29,8 +29,7 @@
*/
/** \file
*
* Board specific Buttons driver header for the ATAVRUSBRF01.
* \brief Board specific Buttons driver header for the ATAVRUSBRF01.
*
* \note This file should not be included directly. It is automatically included as needed by the Buttons driver
* dispatch header located in LUFA/Drivers/Board/Buttons.h.

@ -29,8 +29,7 @@
*/
/** \file
*
* Board specific LED driver header for the ATAVRUSBRF01.
* \brief Board specific LED driver header for the ATAVRUSBRF01.
*
* \note This file should not be included directly. It is automatically included as needed by the LEDs driver
* dispatch header located in LUFA/Drivers/Board/LEDs.h.

@ -29,9 +29,10 @@
*/
/** \file
* \brief Board specific Buttons driver header for the BUMBLEB.
*
* Board specific Buttons driver header for the BUMBLEB. The BUMBLEB third-party board does not include any on-board
* peripherals, but does have an officially recommended external peripheral layout for buttons, LEDs and a Joystick.
* The BUMBLEB third-party board does not include any on-board peripherals, but does have an officially recommended
* external peripheral layout for buttons, LEDs and a Joystick.
*
* \note This file should not be included directly. It is automatically included as needed by the Buttons driver
* dispatch header located in LUFA/Drivers/Board/Buttons.h.

@ -29,9 +29,10 @@
*/
/** \file
* \brief Board specific joystick driver header for the BUMLEB.
*
* Board specific joystick driver header for the USBKEY. The BUMBLEB third-party board does not include any on-board
* peripherals, but does have an officially recommended external peripheral layout for buttons, LEDs and a Joystick.
* The BUMBLEB third-party board does not include any on-board peripherals, but does have an officially recommended
* external peripheral layout for buttons, LEDs and a Joystick.
*
* \note This file should not be included directly. It is automatically included as needed by the joystick driver
* dispatch header located in LUFA/Drivers/Board/Joystick.h.
@ -40,7 +41,7 @@
/** \ingroup Group_Joystick
* @defgroup Group_Joystick_BUMBLEB BUMBLEB
*
* Board specific joystick driver header for the USBKEY. The BUMBLEB third-party board does not include any on-board
* Board specific joystick driver header for the BUMBLEB. The BUMBLEB third-party board does not include any on-board
* peripherals, but does have an officially recommended external peripheral layout for buttons, LEDs and a Joystick.
*
* \note This file should not be included directly. It is automatically included as needed by the joystick driver

@ -29,9 +29,10 @@
*/
/** \file
* \brief Board specific LED driver header for the BUMBLEB.
*
* Board specific LED driver header for the BUMBLEB. The BUMBLEB third-party board does not include any on-board
* peripherals, but does have an officially recommended external peripheral layout for buttons, LEDs and a Joystick.
* The BUMBLEB third-party board does not include any on-board peripherals, but does have an officially recommended
* external peripheral layout for buttons, LEDs and a Joystick.
*
* \note This file should not be included directly. It is automatically included as needed by the LEDs driver
* dispatch header located in LUFA/Drivers/Board/LEDs.h.

@ -29,6 +29,7 @@
*/
/** \file
* \brief Master include file for the board digital button driver.
*
* This file is the master dispatch header file for the board-specific Buttons driver, for boards containing
* physical pushbuttons connected to the AVR's GPIO pins.

@ -29,6 +29,7 @@
*/
/** \file
* \brief Master include file for the board dataflash IC driver.
*
* This file is the master dispatch header file for the board-specific dataflash driver, for boards containing
* dataflash ICs for external non-volatile storage.

@ -29,8 +29,7 @@
*/
/** \file
*
* Board specific Dataflash commands header for the AT45DB321C as mounted on the EVK527.
* \brief Board specific Dataflash commands header for the AT45DB321C as mounted on the EVK527.
*
* \note This file should not be included directly. It is automatically included as needed by the dataflash driver
* dispatch header located in LUFA/Drivers/Board/Dataflash.h.

@ -29,8 +29,7 @@
*/
/** \file
*
* Board specific Buttons driver header for the EVK527.
* \brief Board specific Buttons driver header for the EVK527.
*
* \note This file should not be included directly. It is automatically included as needed by the Buttons driver
* dispatch header located in LUFA/Drivers/Board/Buttons.h.

@ -29,8 +29,7 @@
*/
/** \file
*
* Board specific Dataflash driver header for the EVK527.
* \brief Board specific Dataflash driver header for the EVK527.
*
* \note This file should not be included directly. It is automatically included as needed by the dataflash driver
* dispatch header located in LUFA/Drivers/Board/Dataflash.h.

@ -29,8 +29,7 @@
*/
/** \file
*
* Board specific joystick driver header for the EVK527.
* \brief Board specific joystick driver header for the EVK527.
*
* \note This file should not be included directly. It is automatically included as needed by the joystick driver
* dispatch header located in LUFA/Drivers/Board/Joystick.h.

@ -29,8 +29,7 @@
*/
/** \file
*
* Board specific LED driver header for the EVK527.
* \brief Board specific LED driver header for the EVK527.
*
* \note This file should not be included directly. It is automatically included as needed by the LEDs driver
* dispatch header located in LUFA/Drivers/Board/LEDs.h.

@ -29,6 +29,7 @@
*/
/** \file
* \brief Master include file for the board digital joystick driver.
*
* This file is the master dispatch header file for the board-specific Joystick driver, for boards containing a
* 5-way joystick.

@ -29,6 +29,7 @@
*/
/** \file
* \brief Master include file for the board LEDs driver.
*
* This file is the master dispatch header file for the board-specific LED driver, for boards containing user
* controllable LEDs.

@ -29,8 +29,7 @@
*/
/** \file
*
* Board specific LED driver header for the RZUSBSTICK.
* \brief Board specific LED driver header for the RZUSBSTICK.
*
* \note This file should not be included directly. It is automatically included as needed by the LEDs driver
* dispatch header located in LUFA/Drivers/Board/LEDs.h.

@ -29,8 +29,7 @@
*/
/** \file
*
* Board specific Dataflash commands header for the AT45DB321C as mounted on the STK525.
* \brief Board specific Dataflash commands header for the AT45DB321C as mounted on the STK525.
*
* \note This file should not be included directly. It is automatically included as needed by the dataflash driver
* dispatch header located in LUFA/Drivers/Board/Dataflash.h.

@ -29,8 +29,7 @@
*/
/** \file
*
* Board specific Buttons driver header for the STK525.
* \brief Board specific Buttons driver header for the STK525.
*
* \note This file should not be included directly. It is automatically included as needed by the Buttons driver
* dispatch header located in LUFA/Drivers/Board/Buttons.h.

@ -29,8 +29,7 @@
*/
/** \file
*
* Board specific Dataflash driver header for the STK525.
* \brief Board specific Dataflash driver header for the STK525.
*
* \note This file should not be included directly. It is automatically included as needed by the dataflash driver
* dispatch header located in LUFA/Drivers/Board/Dataflash.h.

@ -29,8 +29,7 @@
*/
/** \file
*
* Board specific joystick driver header for the STK525.
* \brief Board specific joystick driver header for the STK525.
*
* \note This file should not be included directly. It is automatically included as needed by the joystick driver
* dispatch header located in LUFA/Drivers/Board/Joystick.h.

@ -29,8 +29,7 @@
*/
/** \file
*
* Board specific LED driver header for the STK525.
* \brief Board specific LED driver header for the STK525.
*
* \note This file should not be included directly. It is automatically included as needed by the LEDs driver
* dispatch header located in LUFA/Drivers/Board/LEDs.h.

@ -29,8 +29,7 @@
*/
/** \file
*
* Board specific Dataflash commands header for the AT45DB642D as mounted on the STK526.
* \brief Board specific Dataflash commands header for the AT45DB642D as mounted on the STK526.
*
* \note This file should not be included directly. It is automatically included as needed by the dataflash driver
* dispatch header located in LUFA/Drivers/Board/Dataflash.h.

@ -29,8 +29,7 @@
*/
/** \file
*
* Board specific Buttons driver header for the STK526.
* \brief Board specific Buttons driver header for the STK526.
*
* \note This file should not be included directly. It is automatically included as needed by the Buttons driver
* dispatch header located in LUFA/Drivers/Board/Buttons.h.

@ -29,8 +29,7 @@
*/
/** \file
*
* Board specific Dataflash driver header for the STK525.
* \brief Board specific Dataflash driver header for the STK525.
*
* \note This file should not be included directly. It is automatically included as needed by the dataflash driver
* dispatch header located in LUFA/Drivers/Board/Dataflash.h.

@ -29,8 +29,7 @@
*/
/** \file
*
* Board specific joystick driver header for the STK526.
* \brief Board specific joystick driver header for the STK526.
*
* \note This file should not be included directly. It is automatically included as needed by the joystick driver
* dispatch header located in LUFA/Drivers/Board/Joystick.h.

@ -29,8 +29,7 @@
*/
/** \file
*
* Board specific LED driver header for the STK526.
* \brief Board specific LED driver header for the STK526.
*
* \note This file should not be included directly. It is automatically included as needed by the LEDs driver
* dispatch header located in LUFA/Drivers/Board/LEDs.h.

@ -29,8 +29,7 @@
*/
/** \file
*
* Board specific LED driver header for the PJRC Teensy series boards.
* \brief Board specific LED driver header for the PJRC Teensy boards.
*
* \note This file should not be included directly. It is automatically included as needed by the LEDs driver
* dispatch header located in LUFA/Drivers/Board/LEDs.h.

@ -29,6 +29,7 @@
*/
/** \file
* \brief Master include file for the board temperature sensor driver.
*
* Temperature sensor board driver for the USB boards which contain a temperature sensor.
*/

@ -29,8 +29,7 @@
*/
/** \file
*
* Board specific Dataflash commands header for the AT45DB642D as mounted on the USBKEY.
* \brief Board specific Dataflash commands header for the AT45DB642D as mounted on the USBKEY.
*
* \note This file should not be included directly. It is automatically included as needed by the dataflash driver
* dispatch header located in LUFA/Drivers/Board/Dataflash.h.

@ -29,8 +29,7 @@
*/
/** \file
*
* Board specific Buttons driver header for the USBKEY.
* \brief Board specific Buttons driver header for the USBKEY.
*
* \note This file should not be included directly. It is automatically included as needed by the Buttons driver
* dispatch header located in LUFA/Drivers/Board/Buttons.h.

@ -29,8 +29,7 @@
*/
/** \file
*
* Board specific Dataflash driver header for the USBKEY.
* \brief Board specific Dataflash driver header for the USBKEY.
*
* \note This file should not be included directly. It is automatically included as needed by the dataflash driver
* dispatch header located in LUFA/Drivers/Board/Dataflash.h.

@ -29,8 +29,7 @@
*/
/** \file
*
* Board specific joystick driver header for the USBKEY.
* \brief Board specific joystick driver header for the USBKEY.
*
* \note This file should not be included directly. It is automatically included as needed by the joystick driver
* dispatch header located in LUFA/Drivers/Board/Joystick.h.

@ -29,8 +29,7 @@
*/
/** \file
*
* Board specific LED driver header for the USBKEY.
* \brief Board specific LED driver header for the USBKEY.
*
* \note This file should not be included directly. It is automatically included as needed by the LEDs driver
* dispatch header located in LUFA/Drivers/Board/LEDs.h.

@ -29,8 +29,7 @@
*/
/** \file
*
* Board specific Dataflash commands header for the AT45DB642D as mounted on the XPLAIN.
* \brief Board specific Dataflash commands header for the AT45DB642D as mounted on the XPLAIN.
*
* \note This file should not be included directly. It is automatically included as needed by the dataflash driver
* dispatch header located in LUFA/Drivers/Board/Dataflash.h.

@ -29,8 +29,7 @@
*/
/** \file
*
* Board specific Dataflash driver header for the XPLAIN.
* \brief Board specific Dataflash driver header for the XPLAIN.
*
* \note This file should not be included directly. It is automatically included as needed by the dataflash driver
* dispatch header located in LUFA/Drivers/Board/Dataflash.h.

@ -29,8 +29,7 @@
*/
/** \file
*
* Board specific LED driver header for the XPLAIN.
* \brief Board specific LED driver header for the XPLAIN.
*
* \note This file should not be included directly. It is automatically included as needed by the LEDs driver
* dispatch header located in LUFA/Drivers/Board/LEDs.h.

@ -29,10 +29,10 @@
*/
/** \file
* \brief ANSI terminal special escape code macros.
*
* ANSI terminal compatible escape sequences. These escape sequences are designed to be concatenated with existing
* strings to modify their display on a compatible terminal application.
*
*/
/** \ingroup Group_MiscDrivers

@ -29,6 +29,7 @@
*/
/** \file
* \brief Master include file for the ADC peripheral driver.
*
* This file is the master dispatch header file for the device-specific ADC driver, for AVRs containing an ADC.
*

@ -29,6 +29,7 @@
*/
/** \file
* \brief ADC peripheral driver for the U7, U6 and U4 USB AVRs.
*
* ADC driver for the AT90USB1287, AT90USB1286, AT90USB647, AT90USB646, ATMEGA16U4 and ATMEGA32U4 AVRs.
*

@ -1,189 +0,0 @@
/*
LUFA Library
Copyright (C) Dean Camera, 2010.
dean [at] fourwalledcubicle [dot] com
www.fourwalledcubicle.com
*/
/*
Copyright 2010 Dean Camera (dean [at] fourwalledcubicle [dot] com)
Permission to use, copy, modify, distribute, and sell this
software and its documentation for any purpose is hereby granted
without fee, provided that the above copyright notice appear in
all copies and that both that the copyright notice and this
permission notice and warranty disclaimer appear in supporting
documentation, and that the name of the author not be used in
advertising or publicity pertaining to distribution of the
software without specific, written prior permission.
The author disclaim all warranties with regard to this
software, including all implied warranties of merchantability
and fitness. In no event shall the author be liable for any
special, indirect or consequential damages or any damages
whatsoever resulting from loss of use, data or profits, whether
in an action of contract, negligence or other tortious action,
arising out of or in connection with the use or performance of
this software.
*/
/** \file
*
* SPI driver for the 8-bit AVRs.
*
* \note This file should not be included directly. It is automatically included as needed by the SPI driver
* dispatch header located in LUFA/Drivers/Peripheral/SPI.h.
*/
/** \ingroup Group_SPI
* @defgroup Group_SPI_AVR8 8-Bit AVR SPI Driver
*
* SPI driver for the 8-bit AVRs.
*
* \note This file should not be included directly. It is automatically included as needed by the ADC driver
* dispatch header located in LUFA/Drivers/Peripheral/SPI.h.
*
* @{
*/
#ifndef __SPI_AVR8_H__
#define __SPI_AVR8_H__
/* Includes: */
#include <stdbool.h>
/* Preprocessor Checks: */
#if !defined(__INCLUDE_FROM_SPI_H)
#error Do not include this file directly. Include LUFA/Drivers/Peripheral/SPI.h instead.
#endif
/* Enable C linkage for C++ Compilers: */
#if defined(__cplusplus)
extern "C" {
#endif
/* Private Interface - For use in library only: */
#if !defined(__DOXYGEN__)
/* Macros: */
#define SPI_USE_DOUBLESPEED (1 << SPE)
#endif
/* Public Interface - May be used in end-application: */
/* Macros: */
/** SPI prescaler mask for SPI_Init(). Divides the system clock by a factor of 2. */
#define SPI_SPEED_FCPU_DIV_2 SPI_USE_DOUBLESPEED
/** SPI prescaler mask for SPI_Init(). Divides the system clock by a factor of 4. */
#define SPI_SPEED_FCPU_DIV_4 0
/** SPI prescaler mask for SPI_Init(). Divides the system clock by a factor of 8. */
#define SPI_SPEED_FCPU_DIV_8 (SPI_USE_DOUBLESPEED | (1 << SPR0))
/** SPI prescaler mask for SPI_Init(). Divides the system clock by a factor of 16. */
#define SPI_SPEED_FCPU_DIV_16 (1 << SPR0)
/** SPI prescaler mask for SPI_Init(). Divides the system clock by a factor of 32. */
#define SPI_SPEED_FCPU_DIV_32 (SPI_USE_DOUBLESPEED | (1 << SPR1))
/** SPI prescaler mask for SPI_Init(). Divides the system clock by a factor of 64. */
#define SPI_SPEED_FCPU_DIV_64 (SPI_USE_DOUBLESPEED | (1 << SPR1) | (1 << SPR0))
/** SPI prescaler mask for SPI_Init(). Divides the system clock by a factor of 128. */
#define SPI_SPEED_FCPU_DIV_128 ((1 << SPR1) | (1 << SPR0))
/** SPI clock polarity mask for SPI_Init(). Indicates that the SCK should lead on the rising edge. */
#define SPI_SCK_LEAD_RISING (0 << CPOL)
/** SPI clock polarity mask for SPI_Init(). Indicates that the SCK should lead on the falling edge. */
#define SPI_SCK_LEAD_FALLING (1 << CPOL)
/** SPI data sample mode mask for SPI_Init(). Indicates that the data should sampled on the leading edge. */
#define SPI_SAMPLE_LEADING (0 << CPHA)
/** SPI data sample mode mask for SPI_Init(). Indicates that the data should be sampled on the trailing edge. */
#define SPI_SAMPLE_TRAILING (1 << CPHA)
/** SPI mode mask for SPI_Init(). Indicates that the SPI interface should be initialized into slave mode. */
#define SPI_MODE_SLAVE (0 << MSTR)
/** SPI mode mask for SPI_Init(). Indicates that the SPI interface should be initialized into master mode. */
#define SPI_MODE_MASTER (1 << MSTR)
/* Inline Functions: */
/** Initialises the SPI subsystem, ready for transfers. Must be called before calling any other
* SPI routines.
*
* \param[in] SPIOptions SPI Options, a mask consisting of one of each of the SPI_SPEED_*,
* SPI_SCK_*, SPI_SAMPLE_* and SPI_MODE_* masks
*/
static inline void SPI_Init(const uint8_t SPIOptions)
{
DDRB |= ((1 << 1) | (1 << 2));
PORTB |= ((1 << 0) | (1 << 3));
SPCR = ((1 << SPE) | SPIOptions);
if (SPIOptions & SPI_USE_DOUBLESPEED)
SPSR |= (1 << SPI2X);
else
SPSR &= ~(1 << SPI2X);
}
/** Turns off the SPI driver, disabling and returning used hardware to their default configuration. */
static inline void SPI_ShutDown(void)
{
DDRB &= ~((1 << 1) | (1 << 2));
PORTB &= ~((1 << 0) | (1 << 3));
SPCR = 0;
SPSR = 0;
}
/** Sends and receives a byte through the SPI interface, blocking until the transfer is complete.
*
* \param[in] Byte Byte to send through the SPI interface
*
* \return Response byte from the attached SPI device
*/
static inline uint8_t SPI_TransferByte(const uint8_t Byte) ATTR_ALWAYS_INLINE;
static inline uint8_t SPI_TransferByte(const uint8_t Byte)
{
SPDR = Byte;
while (!(SPSR & (1 << SPIF)));
return SPDR;
}
/** Sends a byte through the SPI interface, blocking until the transfer is complete. The response
* byte sent to from the attached SPI device is ignored.
*
* \param[in] Byte Byte to send through the SPI interface
*/
static inline void SPI_SendByte(const uint8_t Byte) ATTR_ALWAYS_INLINE;
static inline void SPI_SendByte(const uint8_t Byte)
{
SPDR = Byte;
while (!(SPSR & (1 << SPIF)));
}
/** Sends a dummy byte through the SPI interface, blocking until the transfer is complete. The response
* byte from the attached SPI device is returned.
*
* \return The response byte from the attached SPI device
*/
static inline uint8_t SPI_ReceiveByte(void) ATTR_ALWAYS_INLINE ATTR_WARN_UNUSED_RESULT;
static inline uint8_t SPI_ReceiveByte(void)
{
SPDR = 0x00;
while (!(SPSR & (1 << SPIF)));
return SPDR;
}
/* Disable C linkage for C++ Compilers: */
#if defined(__cplusplus)
}
#endif
#endif
/** @} */

@ -1,145 +0,0 @@
/*
LUFA Library
Copyright (C) Dean Camera, 2010.
dean [at] fourwalledcubicle [dot] com
www.fourwalledcubicle.com
*/
/*
Copyright 2010 Dean Camera (dean [at] fourwalledcubicle [dot] com)
Permission to use, copy, modify, distribute, and sell this
software and its documentation for any purpose is hereby granted
without fee, provided that the above copyright notice appear in
all copies and that both that the copyright notice and this
permission notice and warranty disclaimer appear in supporting
documentation, and that the name of the author not be used in
advertising or publicity pertaining to distribution of the
software without specific, written prior permission.
The author disclaim all warranties with regard to this
software, including all implied warranties of merchantability
and fitness. In no event shall the author be liable for any
special, indirect or consequential damages or any damages
whatsoever resulting from loss of use, data or profits, whether
in an action of contract, negligence or other tortious action,
arising out of or in connection with the use or performance of
this software.
*/
/** \file
*
* ADC driver for the 8-bit AVRs.
*
* \note This file should not be included directly. It is automatically included as needed by the USART driver
* dispatch header located in LUFA/Drivers/Peripheral/Serial.h.
*/
/** \ingroup Group_Serial
* @defgroup Group_Serial_AVR8 8-Bit AVR Serial Driver
*
* Serial driver for the 8-bit AVRs.
*
* \note This file should not be included directly. It is automatically included as needed by the ADC driver
* dispatch header located in LUFA/Drivers/Peripheral/USART.h.
*
* @{
*/
#ifndef __SERIAL_AVR8_H__
#define __SERIAL_AVR8_H__
/* Includes: */
#include <avr/io.h>
#include <avr/pgmspace.h>
#include <stdbool.h>
/* Preprocessor Checks: */
#if !defined(__INCLUDE_FROM_SERIAL_H)
#error Do not include this file directly. Include LUFA/Drivers/Peripheral/Serial.h instead.
#endif
/* Public Interface - May be used in end-application: */
/* Macros: */
/** Macro for calculating the baud value from a given baud rate when the U2X (double speed) bit is
* not set.
*/
#define SERIAL_UBBRVAL(baud) ((((F_CPU / 16) + (baud / 2)) / (baud)) - 1)
/** Macro for calculating the baud value from a given baud rate when the U2X (double speed) bit is
* set.
*/
#define SERIAL_2X_UBBRVAL(baud) ((((F_CPU / 8) + (baud / 2)) / (baud)) - 1)
/* Pseudo-Function Macros: */
#if defined(__DOXYGEN__)
/** Indicates whether a character has been received through the USART.
*
* \return Boolean true if a character has been received, false otherwise
*/
static inline bool Serial_IsCharReceived(void);
#else
#define Serial_IsCharReceived() ((UCSR1A & (1 << RXC1)) ? true : false)
#endif
/* Inline Functions: */
/** Initializes the USART, ready for serial data transmission and reception. This initializes the interface to
* standard 8-bit, no parity, 1 stop bit settings suitable for most applications.
*
* \param[in] BaudRate Serial baud rate, in bits per second
* \param[in] DoubleSpeed Enables double speed mode when set, halving the sample time to double the baud rate
*/
static inline void Serial_Init(const uint32_t BaudRate, const bool DoubleSpeed)
{
UCSR1A = (DoubleSpeed ? (1 << U2X1) : 0);
UCSR1B = ((1 << TXEN1) | (1 << RXEN1));
UCSR1C = ((1 << UCSZ11) | (1 << UCSZ10));
DDRD |= (1 << 3);
PORTD |= (1 << 2);
UBRR1 = (DoubleSpeed ? SERIAL_2X_UBBRVAL(BaudRate) : SERIAL_UBBRVAL(BaudRate));
}
/** Turns off the USART driver, disabling and returning used hardware to their default configuration. */
static inline void Serial_ShutDown(void)
{
UCSR1A = 0;
UCSR1B = 0;
UCSR1C = 0;
DDRD &= ~(1 << 3);
PORTD &= ~(1 << 2);
UBRR1 = 0;
}
/** Transmits a given byte through the USART.
*
* \param[in] DataByte Byte to transmit through the USART
*/
static inline void Serial_TxByte(const char DataByte)
{
while (!(UCSR1A & (1 << UDRE1)));
UDR1 = DataByte;
}
/** Receives a byte from the USART.
*
* \return Byte received from the USART
*/
static inline uint8_t Serial_RxByte(void)
{
while (!(UCSR1A & (1 << RXC1)));
return UDR1;
}
/* Disable C linkage for C++ Compilers: */
#if defined(__cplusplus)
}
#endif
#endif
/** @} */

@ -29,6 +29,7 @@
*/
/** \file
* \brief TWI peripheral driver for the U7, U6 and U4 USB AVRs.
*
* Master mode TWI driver for the AT90USB1287, AT90USB1286, AT90USB647, AT90USB646, ATMEGA16U4 and ATMEGA32U4 AVRs.
*

@ -29,6 +29,7 @@
*/
/** \file
* \brief Master include file for the SPI peripheral driver.
*
* Hardware SPI subsystem driver for the supported USB AVRs models.
*/

@ -29,6 +29,7 @@
*/
/** \file
* \brief Master include file for the USART peripheral driver.
*
* Driver for the USART subsystem on supported USB AVRs.
*/

@ -29,11 +29,13 @@
*/
/** \file
* \brief Standard avr-libc character stream driver for the USART.
*
* Serial stream driver for the USART subsystem on supported USB AVRs. This makes use of the functions in the
* regular USART driver, but allows the avr-libc standard stream functions (printf, puts, etc.) to work with the
* regular USART driver (see \ref Group_Serial), but allows the avr-libc standard stream functions (printf,
* puts, etc.) to work with the
* USART.
**/
*/
/** \ingroup Group_PeripheralDrivers
* @defgroup Group_SerialStream Serial Stream Driver - LUFA/Drivers/Peripheral/SerialStream.h
@ -44,7 +46,8 @@
*
* \section Module Description
* Serial stream driver for the USART subsystem on supported USB AVRs. This makes use of the functions in the
* regular USART driver, but allows the avr-libc standard stream functions (printf, puts, etc.) to work with the
* regular USART driver (see \ref Group_Serial), but allows the avr-libc standard stream functions (printf,
* puts, etc.) to work with the
* USART.
*
* @{

@ -29,6 +29,7 @@
*/
/** \file
* \brief Master include file for the TWI peripheral driver.
*
* This file is the master dispatch header file for the device-specific ADC driver, for AVRs containing an ADC.
*

@ -28,6 +28,13 @@
this software.
*/
/** \file
* \brief Master include file for the library USB Audio Class driver.
*
* This file should be included in all user projects making use of this optional class driver, instead of
* including any headers in the USB/ClassDriver/Device, USB/ClassDriver/Host or USB/ClassDriver/Common subdirectories.
*/
/** \ingroup Group_USBClassDrivers
* @defgroup Group_USBClassAudio Audio Class Driver - LUFA/Drivers/Class/Audio.h
*

@ -28,8 +28,15 @@
this software.
*/
/** \file
* \brief Master include file for the library USB CDC-ACM Class driver.
*
* This file should be included in all user projects making use of this optional class driver, instead of
* including any headers in the USB/ClassDriver/Device, USB/ClassDriver/Host or USB/ClassDriver/Common subdirectories.
*/
/** \ingroup Group_USBClassDrivers
* @defgroup Group_USBClassCDC CDC Class Driver - LUFA/Drivers/Class/CDC.h
* @defgroup Group_USBClassCDC CDC-ACM (Virtual Serial) Class Driver - LUFA/Drivers/Class/CDC.h
*
* \section Sec_Dependencies Module Source Dependencies
* The following files must be built with any user project that uses this module:

@ -28,6 +28,13 @@
this software.
*/
/** \file
* \brief Common definitions and declarations for the library USB Audio Class driver.
*
* \note This file should not be included directly. It is automatically included as needed by the class driver
* dispatch header located in LUFA/Drivers/USB/Class/Audio.h.
*/
/** \ingroup Group_USBClassAudio
* @defgroup Group_USBClassAudioCommon Common Class Definitions
*

@ -28,6 +28,13 @@
this software.
*/
/** \file
* \brief Common definitions and declarations for the library USB CDC Class driver.
*
* \note This file should not be included directly. It is automatically included as needed by the class driver
* dispatch header located in LUFA/Drivers/USB/Class/CDC.h.
*/
/** \ingroup Group_USBClassCDC
* @defgroup Group_USBClassCDCCommon Common Class Definitions
*

@ -28,6 +28,13 @@
this software.
*/
/** \file
* \brief Common definitions and declarations for the library USB HID Class driver.
*
* \note This file should not be included directly. It is automatically included as needed by the class driver
* dispatch header located in LUFA/Drivers/USB/Class/HID.h.
*/
/** \ingroup Group_USBClassHID
* @defgroup Group_USBClassHIDCommon Common Class Definitions
*

@ -28,6 +28,13 @@
this software.
*/
/** \file
* \brief Common definitions and declarations for the library USB MIDI Class driver.
*
* \note This file should not be included directly. It is automatically included as needed by the class driver
* dispatch header located in LUFA/Drivers/USB/Class/MIDI.h.
*/
/** \ingroup Group_USBClassMIDI
* @defgroup Group_USBClassMIDICommon Common Class Definitions
*

@ -28,6 +28,13 @@
this software.
*/
/** \file
* \brief Common definitions and declarations for the library USB Mass Storage Class driver.
*
* \note This file should not be included directly. It is automatically included as needed by the class driver
* dispatch header located in LUFA/Drivers/USB/Class/MassStorage.h.
*/
/** \ingroup Group_USBClassMS
* @defgroup Group_USBClassMSCommon Common Class Definitions
*

@ -28,6 +28,13 @@
this software.
*/
/** \file
* \brief Common definitions and declarations for the library USB Printer Class driver.
*
* \note This file should not be included directly. It is automatically included as needed by the class driver
* dispatch header located in LUFA/Drivers/USB/Class/Printer.h.
*/
/** \ingroup Group_USBClassMS
* @defgroup Group_USBClassPrinterCommon Common Class Definitions
*

@ -28,6 +28,13 @@
this software.
*/
/** \file
* \brief Common definitions and declarations for the library USB RNDIS Class driver.
*
* \note This file should not be included directly. It is automatically included as needed by the class driver
* dispatch header located in LUFA/Drivers/USB/Class/RNDIS.h.
*/
/** \ingroup Group_USBClassRNDIS
* @defgroup Group_USBClassRNDISCommon Common Class Definitions
*

@ -28,6 +28,13 @@
this software.
*/
/** \file
* \brief Common RNDIS class constant definitions.
*
* \note This file should not be included directly. It is automatically included as needed by the class driver
* dispatch header located in LUFA/Drivers/USB/Class/Audio.h.
*/
/** \file
*
* RNDIS specification related constants. For more information on these

@ -28,6 +28,13 @@
this software.
*/
/** \file
* \brief Common definitions and declarations for the library USB Still Image Class driver.
*
* \note This file should not be included directly. It is automatically included as needed by the class driver
* dispatch header located in LUFA/Drivers/USB/Class/StillImage.h.
*/
/** \ingroup Group_USBClassSI
* @defgroup Group_USBClassSICommon Common Class Definitions
*

@ -28,6 +28,13 @@
this software.
*/
/** \file
* \brief Device mode driver for the library USB Audio Class driver.
*
* \note This file should not be included directly. It is automatically included as needed by the class driver
* dispatch header located in LUFA/Drivers/USB/Class/Audio.h.
*/
/** \ingroup Group_USBClassAudio
* @defgroup Group_USBClassAudioDevice Audio Class Device Mode Driver
*

@ -28,6 +28,13 @@
this software.
*/
/** \file
* \brief Device mode driver for the library USB CDC Class driver.
*
* \note This file should not be included directly. It is automatically included as needed by the class driver
* dispatch header located in LUFA/Drivers/USB/Class/CDC.h.
*/
/** \ingroup Group_USBClassCDC
* @defgroup Group_USBClassCDCDevice CDC Class Device Mode Driver
*

@ -28,6 +28,13 @@
this software.
*/
/** \file
* \brief Device mode driver for the library USB HID Class driver.
*
* \note This file should not be included directly. It is automatically included as needed by the class driver
* dispatch header located in LUFA/Drivers/USB/Class/HID.h.
*/
/** \ingroup Group_USBClassHID
* @defgroup Group_USBClassHIDDevice HID Class Device Mode Driver
*

@ -28,6 +28,13 @@
this software.
*/
/** \file
* \brief Device mode driver for the library USB MIDI Class driver.
*
* \note This file should not be included directly. It is automatically included as needed by the class driver
* dispatch header located in LUFA/Drivers/USB/Class/MIDI.h.
*/
/** \ingroup Group_USBClassMIDI
* @defgroup Group_USBClassMIDIDevice MIDI Class Device Mode Driver
*

@ -28,6 +28,13 @@
this software.
*/
/** \file
* \brief Device mode driver for the library USB Mass Storage Class driver.
*
* \note This file should not be included directly. It is automatically included as needed by the class driver
* dispatch header located in LUFA/Drivers/USB/Class/MassStorage.h.
*/
/** \ingroup Group_USBClassMS
* @defgroup Group_USBClassMSDevice Mass Storage Class Device Mode Driver
*

@ -28,6 +28,13 @@
this software.
*/
/** \file
* \brief Device mode driver for the library USB RNDIS Class driver.
*
* \note This file should not be included directly. It is automatically included as needed by the class driver
* dispatch header located in LUFA/Drivers/USB/Class/RNDIS.h.
*/
/** \ingroup Group_USBClassRNDIS
* @defgroup Group_USBClassRNDISDevice RNDIS Class Device Mode Driver
*

@ -28,6 +28,13 @@
this software.
*/
/** \file
* \brief Master include file for the library USB HID Class driver.
*
* This file should be included in all user projects making use of this optional class driver, instead of
* including any headers in the USB/ClassDriver/Device, USB/ClassDriver/Host or USB/ClassDriver/Common subdirectories.
*/
/** \ingroup Group_USBClassDrivers
* @defgroup Group_USBClassHID HID Class Driver - LUFA/Drivers/Class/HID.h
*

@ -28,6 +28,13 @@
this software.
*/
/** \file
* \brief Host mode driver for the library USB Audio Class driver.
*
* \note This file should not be included directly. It is automatically included as needed by the class driver
* dispatch header located in LUFA/Drivers/USB/Class/Audio.h.
*/
/** \ingroup Group_USBClassCDC
* @defgroup Group_USBClassCDCHost CDC Class Host Mode Driver
*

@ -28,6 +28,13 @@
this software.
*/
/** \file
* \brief Host mode driver for the library USB HID Class driver.
*
* \note This file should not be included directly. It is automatically included as needed by the class driver
* dispatch header located in LUFA/Drivers/USB/Class/HID.h.
*/
/** \ingroup Group_USBClassHID
* @defgroup Group_USBClassHIDHost HID Class Host Mode Driver
*

@ -29,10 +29,11 @@
*/
/** \file
* \brief USB Human Interface Device (HID) Class report descriptor parser.
*
* USB Human Interface Device (HID) Class report descriptor processing routines. This file allows for the easy
* parsing of the complex HID report descriptor, which describes the data that the device transmits to the host.
*
* This file allows for the easy parsing of the complex HID report descriptor, which describes the data that
* the device transmits to the host. It also provides an easy API for extracting and processing the data
* elements inside a HID report sent from an attached HID device.
*/
/** \ingroup Group_USB

@ -29,9 +29,9 @@
*/
/** \file
* \brief Constants for HID report item attributes.
*
* Constants for HID report item attributes. Refer to the HID specification for details on each
* flag's meaning when applied to an IN, OUT or FEATURE item.
* Refer to the HID specification for details on each flag's meaning when applied to an IN, OUT or FEATURE item.
*/
/** \ingroup Group_HIDParser

@ -28,6 +28,13 @@
this software.
*/
/** \file
* \brief Host mode driver for the library USB MIDI Class driver.
*
* \note This file should not be included directly. It is automatically included as needed by the class driver
* dispatch header located in LUFA/Drivers/USB/Class/MIDI.h.
*/
/** \ingroup Group_USBClassMIDI
* @defgroup Group_USBClassMIDIHost MIDI Class Host Mode Driver
*

@ -28,6 +28,13 @@
this software.
*/
/** \file
* \brief Host mode driver for the library USB Mass Storage Class driver.
*
* \note This file should not be included directly. It is automatically included as needed by the class driver
* dispatch header located in LUFA/Drivers/USB/Class/MassStorage.h.
*/
/** \ingroup Group_USBClassMS
* @defgroup Group_USBClassMassStorageHost Mass Storage Class Host Mode Driver
*

@ -28,6 +28,13 @@
this software.
*/
/** \file
* \brief Host mode driver for the library USB Printer Class driver.
*
* \note This file should not be included directly. It is automatically included as needed by the class driver
* dispatch header located in LUFA/Drivers/USB/Class/Printer.h.
*/
/** \ingroup Group_USBClassPrinter
* @defgroup Group_USBClassPrinterHost Printer Class Host Mode Driver
*

@ -28,6 +28,13 @@
this software.
*/
/** \file
* \brief Host mode driver for the library USB RNDIS Class driver.
*
* \note This file should not be included directly. It is automatically included as needed by the class driver
* dispatch header located in LUFA/Drivers/USB/Class/RNDIS.h.
*/
/** \ingroup Group_USBClassRNDIS
* @defgroup Group_USBClassRNDISHost RNDIS Class Host Mode Driver
*

@ -151,7 +151,8 @@ uint8_t SImage_Host_SendBlockHeader(USB_ClassInfo_SI_Host_t* const SIInterfaceIn
if ((USB_HostState != HOST_STATE_Configured) || !(SIInterfaceInfo->State.IsActive))
return PIPE_RWSTREAM_DeviceDisconnected;
PIMAHeader->TransactionID = SIInterfaceInfo->State.TransactionID++;
if (SIInterfaceInfo->State.IsSessionOpen)
PIMAHeader->TransactionID = SIInterfaceInfo->State.TransactionID++;
Pipe_SelectPipe(SIInterfaceInfo->Config.DataOUTPipeNumber);
Pipe_Unfreeze();

@ -28,6 +28,13 @@
this software.
*/
/** \file
* \brief Host mode driver for the library USB Still Image Class driver.
*
* \note This file should not be included directly. It is automatically included as needed by the class driver
* dispatch header located in LUFA/Drivers/USB/Class/StillImage.h.
*/
/** \ingroup Group_USBClassSI
* @defgroup Group_USBClassStillImageHost Still Image Class Host Mode Driver
*

@ -28,6 +28,13 @@
this software.
*/
/** \file
* \brief Master include file for the library USB MIDI Class driver.
*
* This file should be included in all user projects making use of this optional class driver, instead of
* including any headers in the USB/ClassDriver/Device, USB/ClassDriver/Host or USB/ClassDriver/Common subdirectories.
*/
/** \ingroup Group_USBClassDrivers
* @defgroup Group_USBClassMIDI MIDI Class Driver - LUFA/Drivers/Class/MIDI.h
*

@ -28,6 +28,13 @@
this software.
*/
/** \file
* \brief Master include file for the library USB Mass Storage Class driver.
*
* This file should be included in all user projects making use of this optional class driver, instead of
* including any headers in the USB/ClassDriver/Device, USB/ClassDriver/Host or USB/ClassDriver/Common subdirectories.
*/
/** \ingroup Group_USBClassDrivers
* @defgroup Group_USBClassMS Mass Storage Class Driver - LUFA/Drivers/Class/MassStorage.h
*

@ -28,6 +28,13 @@
this software.
*/
/** \file
* \brief Master include file for the library USB Printer Class driver.
*
* This file should be included in all user projects making use of this optional class driver, instead of
* including any headers in the USB/ClassDriver/Device, USB/ClassDriver/Host or USB/ClassDriver/Common subdirectories.
*/
/** \ingroup Group_USBClassDrivers
* @defgroup Group_USBClassPrinter Printer Class Driver - LUFA/Drivers/Class/Printer.h
*

@ -28,8 +28,15 @@
this software.
*/
/** \file
* \brief Master include file for the library USB RNDIS Class driver.
*
* This file should be included in all user projects making use of this optional class driver, instead of
* including any headers in the USB/ClassDriver/Device, USB/ClassDriver/Host or USB/ClassDriver/Common subdirectories.
*/
/** \ingroup Group_USBClassDrivers
* @defgroup Group_USBClassRNDIS RNDIS Class Driver - LUFA/Drivers/Class/RNDIS.h
* @defgroup Group_USBClassRNDIS RNDIS (Networking) Class Driver - LUFA/Drivers/Class/RNDIS.h
*
* \section Sec_Dependencies Module Source Dependencies
* The following files must be built with any user project that uses this module:

@ -28,6 +28,13 @@
this software.
*/
/** \file
* \brief Master include file for the library USB Still Image Class driver.
*
* This file should be included in all user projects making use of this optional class driver, instead of
* including any headers in the USB/ClassDriver/Device, USB/ClassDriver/Host or USB/ClassDriver/Common subdirectories.
*/
/** \ingroup Group_USBClassDrivers
* @defgroup Group_USBClassSI Still Image Class Driver - LUFA/Drivers/Class/StillImage.h
*

@ -29,10 +29,14 @@
*/
/** \file
* \brief Configuration descriptor parser API.
*
* Configuration descriptor parser API. This section of the library gives a friendly API which can be used in
* host applications to easily parse an attached device's configuration descriptor so that endpoint, interface
* and other descriptor data can be extracted and used as needed.
* This section of the library gives a friendly API which can be used in host applications to easily
* parse an attached device's configuration descriptor so that endpoint, interface and other descriptor
* data can be extracted and used as needed.
*
* \note This file should not be included directly. It is automatically included as needed by the USB driver
* dispatch header located in LUFA/Drivers/USB/USB.h.
*/
/** \ingroup Group_Descriptors

@ -28,6 +28,25 @@
this software.
*/
/** \file
* \brief USB controller events manager.
*
* This file contains macros and functions relating to the management of library events, which are small
* pieces of code similar to ISRs which are run when a given condition is met. Each event can be fired from
* multiple places in the user or library code, which may or may not be inside an ISR, thus each handler
* should be written to be as small and fast as possible to prevent possible problems.
*
* Events can be hooked by the user application by declaring a handler function with the same name and parameters
* listed here. If an event with no user-associated handler is fired within the library, it by default maps to an
* internal empty stub function.
*
* Each event must only have one associated event handler, but can be raised by multiple sources by calling the
* event handler function (with any required event parameters).
*
* \note This file should not be included directly. It is automatically included as needed by the USB driver
* dispatch header located in LUFA/Drivers/USB/USB.h.
*/
/** \ingroup Group_USB
* @defgroup Group_Events USB Events
*

@ -28,6 +28,15 @@
this software.
*/
/** \file
* \brief USB standard descriptor definitions.
*
* This file contains structures and macros for the easy creation of standard USB descriptors in USB device projects.
*
* \note This file should not be included directly. It is automatically included as needed by the USB driver
* dispatch header located in LUFA/Drivers/USB/USB.h.
*/
/** \ingroup Group_USB
* @defgroup Group_Descriptors USB Descriptors
*

@ -28,11 +28,20 @@
this software.
*/
/** \file
* \brief USB control endpoint request definitions.
*
* This file contains structures and macros for the easy creation and parsing of standard USB control requests.
*
* \note This file should not be included directly. It is automatically included as needed by the USB driver
* dispatch header located in LUFA/Drivers/USB/USB.h.
*/
/** \ingroup Group_USB
* @defgroup Group_StdRequest Standard USB Requests
*
* This module contains definitions for the various control request parameters, so that the request
* details (such as data direction, request recipient, etc.) can be extracted via masking.
* details (such as data direction, request recipient, etc.) can be extracted via masking.
*
* @{
*/

@ -27,6 +27,16 @@
arising out of or in connection with the use or performance of
this software.
*/
/** \file
* \brief USB endpoint/pipe stream callback management.
*
* This file contains definitions for the creation of optional callback routines which can be passed to the
* endpoint and/or pipe stream APIs, to abort the transfer currently in progress when a condition is met.
*
* \note This file should not be included directly. It is automatically included as needed by the USB driver
* dispatch header located in LUFA/Drivers/USB/USB.h.
*/
/** \ingroup Group_USB
* @defgroup Group_StreamCallbacks Endpoint and Pipe Stream Callbacks

@ -28,6 +28,16 @@
this software.
*/
/** \file
* \brief USB controller interrupt service routine management.
*
* This file contains definitions required for the correct handling of low level USB service routine interrupts
* from the USB controller.
*
* \note This file should not be included directly. It is automatically included as needed by the USB driver
* dispatch header located in LUFA/Drivers/USB/USB.h.
*/
#ifndef __USBINTERRUPT_H__
#define __USBINTERRUPT_H__

@ -28,6 +28,17 @@
this software.
*/
/** \file
* \brief USB mode and capability macros.
*
* This file defines macros indicating the type of USB controller the library is being compiled for, and its
* capabilities. These macros may then be referenced in the user application to selectively enable or disable
* code sections depending on if they are defined or not.
*
* \note This file should not be included directly. It is automatically included as needed by the USB driver
* dispatch header located in LUFA/Drivers/USB/USB.h.
*/
/** \ingroup Group_USB
* @defgroup Group_USBMode USB Mode Tokens
*

@ -27,7 +27,17 @@
arising out of or in connection with the use or performance of
this software.
*/
/** \file
* \brief Main USB service task management.
*
* This file contains the function definitions required for the main USB service task, which must be called
* from the user application to ensure that the USB connection to or from a connected USB device is maintained.
*
* \note This file should not be included directly. It is automatically included as needed by the USB driver
* dispatch header located in LUFA/Drivers/USB/USB.h.
*/
#ifndef __USBTASK_H__
#define __USBTASK_H__

@ -28,6 +28,16 @@
this software.
*/
/** \file
* \brief USB device standard request management.
*
* This file contains the function prototypes neccesary for the processing of incomming standard control requests
* when the library is in USB device mode.
*
* \note This file should not be included directly. It is automatically included as needed by the USB driver
* dispatch header located in LUFA/Drivers/USB/USB.h.
*/
#ifndef __DEVCHAPTER9_H__
#define __DEVCHAPTER9_H__

@ -27,7 +27,16 @@
arising out of or in connection with the use or performance of
this software.
*/
/** \file
* \brief USB device mode definitions.
*
* This file contains structures, function prototypes and macros related to USB device mode.
*
* \note This file should not be included directly. It is automatically included as needed by the USB driver
* dispatch header located in LUFA/Drivers/USB/USB.h.
*/
/** \ingroup Group_USB
* @defgroup Group_Device Device Management
*

@ -28,6 +28,16 @@
this software.
*/
/** \file
* \brief USB device endpoint management definitions.
*
* This file contains structures, function prototypes and macros related to the management of the device's
* data endpoints when the library is initialized in USB device mode.
*
* \note This file should not be included directly. It is automatically included as needed by the USB driver
* dispatch header located in LUFA/Drivers/USB/USB.h.
*/
/** \ingroup Group_USB
* @defgroup Group_EndpointManagement Endpoint Management
*

@ -28,6 +28,15 @@
this software.
*/
/** \file
* \brief USB host mode definitions.
*
* This file contains structures, function prototypes and macros related to USB host mode.
*
* \note This file should not be included directly. It is automatically included as needed by the USB driver
* dispatch header located in LUFA/Drivers/USB/USB.h.
*/
/** \ingroup Group_USB
* @defgroup Group_Host Host Management
*

@ -28,6 +28,16 @@
this software.
*/
/** \file
* \brief USB host standard request management.
*
* This file contains the function prototypes neccesary for the issuing of outgoing standard control requests
* when the library is in USB host mode.
*
* \note This file should not be included directly. It is automatically included as needed by the USB driver
* dispatch header located in LUFA/Drivers/USB/USB.h.
*/
#ifndef __HOSTCHAPTER9_H__
#define __HOSTCHAPTER9_H__

@ -28,6 +28,16 @@
this software.
*/
/** \file
* \brief USB low level USB controller definitions.
*
* This file contains structures, function prototypes and macros related to the low level configutation of the
* USB controller, to start, stop and reset the USB library core.
*
* \note This file should not be included directly. It is automatically included as needed by the USB driver
* dispatch header located in LUFA/Drivers/USB/USB.h.
*/
/** \ingroup Group_USB
* @defgroup Group_USBManagement USB Interface Management
*

@ -28,6 +28,16 @@
this software.
*/
/** \file
* \brief USB OTG mode definitions.
*
* This file contains structures, function prototypes and macros related to USB OTG mode, where two USB devices
* may be linked directly together and exchange host/device roles as needed.
*
* \note This file should not be included directly. It is automatically included as needed by the USB driver
* dispatch header located in LUFA/Drivers/USB/USB.h.
*/
/** \ingroup Group_USB
* @defgroup Group_OTG USB On The Go (OTG) Management
*

@ -28,6 +28,16 @@
this software.
*/
/** \file
* \brief USB host pipe management definitions.
*
* This file contains structures, function prototypes and macros related to the management of the device's
* data pipes when the library is initialized in USB host mode.
*
* \note This file should not be included directly. It is automatically included as needed by the USB driver
* dispatch header located in LUFA/Drivers/USB/USB.h.
*/
/** \ingroup Group_USB
* @defgroup Group_PipeManagement Pipe Management
*

@ -29,10 +29,10 @@
*/
/** \file
* \brief Master include file for the library USB functionality.
*
* Master include file for the library USB functionality. This file should be included in all user projects making
* use of the USB portions of the library, instead of including any headers in the USB/LowLevel or USB/HighLevel
* directories.
* This file should be included in all user projects making use of the USB portions of the library, instead of
* including any headers in the USB/LowLevel/ or USB/HighLevel/ subdirectories.
*/
/** @defgroup Group_USB USB - LUFA/Drivers/USB/USB.h

@ -7,17 +7,17 @@
/**
* \page Page_AlternativeStacks Alternative USB AVR Stacks
*
* LUFA is not the only stack available for the USB AVRs, although it is perhaps the best (\see Page_WhyUseLUFA).
* LUFA is not the only stack available for the USB AVRs, although it is perhaps the best (see \ref Page_WhyUseLUFA).
* In the interests of completeness and user choice, other known USB AVR stacks are listed here.
*
* - Atmel USB AVR Stack (<i>Atmel Inc.</i>) \n
* - <b>Name:</b> Atmel USB AVR Stack (<i>Atmel Inc.</i>) \n
* <b>Cost:</b> Free \n
* <b>License:</b> Atmel Limited License (see Atmel download for details) \n
* <b>Website:</b> http://atmel.com/dyn/products/app_notes.asp?family_id=607#USB \n
* <b>Description:</b> This is the official Atmel USB AVR stack, for their 8-bit USB AVR lineup. Each series of
* USB AVR is seperated into a seperate download stack, which is both AVR-GCC and IAR compatible.
*
* - Dr. Stefan Salewski's AT90USB1287 Stack (<i>Dr. Stefan Salewski</i>) \n
* - <b>Name:</b> Dr. Stefan Salewski's AT90USB1287 Stack (<i>Dr. Stefan Salewski</i>) \n
* <b>Cost:</b> Free \n
* <b>License:</b> GPL \n
* <b>Website:</b> http://www.ssalewski.de/AT90USB_firmware.html.en \n
@ -25,13 +25,13 @@
* German Physicist. It compiles for AVR-GCC and can potentially be modified to work on other USB
* AVR models.
*
* - PJRC Teensy Stack (<i>Paul Stoffregen</i>) \n
* - <b>Name:</b> PJRC Teensy Stack (<i>Paul Stoffregen</i>) \n
* <b>Cost:</b> Free \n
* <b>License:</b> BSD \n
* <b>Website:</b> http://www.pjrc.com/teensy/usb_debug_only.html \n
* <b>Description:</b> Not so much a complete stack as a collection of USB enabled demos, this library is specifically
* designed for the PJRC Teensy line of USB AVRs, and thus may need to be modified for other USB AVR
* chips. These code samples shows the inner workings of the USB controller, without all the abstraction
* present in most other USB AVR stacks.
* chips. These minimal code samples shows the inner workings of the USB controller, without all the
* abstraction present in most other USB AVR stacks.
*/

@ -14,7 +14,7 @@
* - Added new Relay Controller Board project (thanks to OBinou)
*
* <b>Changed:</b>
* - AVRISP programmer project now has a more robust timeout system, allowing for an increse of the software USART speed
* - AVRISP programmer project now has a more robust timeout system, allowing for an increase of the software USART speed
* for PDI and TPI programming
* - Added a timeout value to the TWI_StartTransmission() function, within which the addressed device must respond
* - Webserver project now uses the board LEDs to indicate the current IP configuration state
@ -32,7 +32,7 @@
* - Fixed ADC routines not correctly returning the last result when multiple channels were read
* - Fixed ADC routines failing to read the extended channels (Channels 8 to 13, Internal Temperature Sensor) on the
* U4 series USB AVR parts
* - Fixed LowLevel MassStorage demo broken on the U2 AVRs due to double-banked endpoints
* - Fixed LowLevel MassStorage demo broken on the U2 series USB AVRs due to unsupported double-banked endpoint modes used
* - Fixed compilation error in the AudioInput demos when MICROPHONE_BIASED_TO_HALF_RAIL is defined (thanks to C. Scott Ananian)
* - Fixed incorrect definition of HID_ALIGN_DATA() causing incorrect HID report item data alignment
* - Fixed Still Image Host class driver not resetting the transaction ID when a new session is opened, fixed driver not sending

@ -33,6 +33,7 @@
* -# Finish MIDI class Bootloader
* -# Finish SideShow demo
* -# Finish StandaloneProgrammer project
* -# Finish MIDIToneGenerator project
* - Ports
* -# AVR32 UC3B series microcontrollers
* -# Atmel ARM7 series microcontrollers

@ -107,6 +107,9 @@
* - <b>USBtoSerial</b> - USB to USART Serial Converter project
* - <b>Webserver</b> - RNDIS Host Webserver with DHCP client, powered by uIP TCP/IP stack project and FatFS library
* - <b>XPLAINBridge</b> - XPLAIN alternative PDI Programmer/USB to Serial Bridge firmware project
* - <b>Incomplete</b>
* - <b>MIDIToneGenerator</b> - Incomplete MIDI Tone Generator application, to convert MIDI note messages into audio tones
* - <b>StandaloneProgrammer</b> - Incomplete Standalone AVR Programmer application, to program AVRs directly from a Mass Storage disk
*
* </small>
*/

@ -12,9 +12,9 @@
* Commercial entities can opt out of the public disclosure clause in this license
* for a one-time US$1500 payment. This provides a non-exclusive modified MIT licensed which
* allows for the free use of the LUFA library, bootloaders and (where the sole copyright
* is attributed to Dean Camera) demos without public disclosure within an organisation. Please
* contact the author for more information (<b>Note: Please do NOT pay this in advance through the
* donation link shown on \ref Page_Donating - contact author for payment details.</b>).
* is attributed to Dean Camera) demos without public disclosure within an organisation, in
* addition to three free hours of consultation with the library author, and priority support.
* Please contact the author for more information via the address shown on on \ref Page_Resources.
*
* \verbatim
* Permission to use, copy, modify, and distribute this software

@ -7,15 +7,15 @@
/**
* \mainpage
*
* \n
* \image html LUFA.png
* <div align="center"><small><i>Logo design by <b>Ryo Yamauchi</b></i></small></div>
* \n
*
* <b>LUFA is donationware. For author and donation information, see \ref Page_Donating.</b>
*
* LUFA is an open-source USB library for the USB-enabled AVR microcontrollers, released under the MIT license. It supports
* a large number of USB AVR models and boards (see \ref Page_DeviceSupport). It is designed to provide an easy to use, feature
* rich framework for the development of USB peripherals and hosts.
* LUFA is an open-source USB library for the USB-enabled AVR microcontrollers, released under the MIT license (see \ref Page_Licence).
* It supports a large number of USB AVR models and boards (see \ref Page_DeviceSupport). It is designed to provide an easy to use,
* feature rich framework for the development of USB peripherals and hosts.
*
* LUFA focuses on the microcontroller side of USB development only; it includes no host USB driver development facilities. While
* custom USB devices can be made with LUFA, the included demos all use the inbuilt OS drivers for each USB class for simplicity.
@ -34,12 +34,10 @@
* and open source LUFA powered projects.
*
* <b>Subsections:</b>
* - \subpage Page_WhyUseLUFA Why Use LUFA?
* - \subpage Page_WhyUseLUFA What are the advantages of using LUFA?
* - \subpage Page_LUFAvsAtmelStack How does LUFA compare to the Atmel USB AVR stack?
* - \subpage Page_AlternativeStacks Alternative USB AVR Stacks
* - \subpage Page_Licence Project licence
* - \subpage Page_Licence Project source licence and commercial use information
* - \subpage Page_Donating Donating to support this project
* - \subpage Page_LibraryApps Overview of included Demos, Bootloaders and Projects
*
* <small><i>Logo design by <b>Ryo Yamauchi</b></i></small>
*/

@ -29,6 +29,7 @@
*/
/** \file
* \brief Simple round-robbin pseudo-task scheduler.
*
* Simple round-robbin cooperative scheduler for use in basic projects where non real-time tasks need
* to be executed. Each task is executed in sequence, and can be enabled or disabled individually or as a group.

@ -9,13 +9,14 @@
/*
Copyright 2010 Dean Camera (dean [at] fourwalledcubicle [dot] com)
Permission to use, copy, modify, distribute, and sell this software
and its documentation for any purpose is hereby granted without fee,
provided that the above copyright notice appear in all copies and that
both that the copyright notice and this permission notice and warranty
disclaimer appear in supporting documentation, and that the name of the
author not be used in advertising or publicity pertaining to distribution
of the software without specific, written prior permission.
Permission to use, copy, modify, distribute, and sell this
software and its documentation for any purpose is hereby granted
without fee, provided that the above copyright notice appear in
all copies and that both that the copyright notice and this
permission notice and warranty disclaimer appear in supporting
documentation, and that the name of the author not be used in
advertising or publicity pertaining to distribution of the
software without specific, written prior permission.
The author disclaim all warranties with regard to this
software, including all implied warranties of merchantability
@ -28,6 +29,8 @@
*/
/** \file
*
* \brief LUFA library version constants.
*
* Version constants for informational purposes and version-specific macro creation. This header file contains the
* current LUFA version number in several forms, for use in the user-application (for example, for printing out

@ -15,10 +15,12 @@
This package contains the complete LUFA library, demos, user-submitted projects
and bootloaders for use with compatible microcontroller models. To get started,
you will need to install the "Doxygen" documentation generation tool from
www.doxygen.org, and run "make doxygen" from the command line. From there, the
generated HTML documentation for the library itself will be avaliable in the
LUFA/Documentation/html/ directory. View this documentation in your chosen web
browser for further Getting Started information.
www.doxygen.org, and run "make doxygen" from the command line whilst inside the
extracted LUFA download package directory. From there, the generated Doxygen
HTML documentation for the library and included projects will be available in the
generated Documentation/ subdirectories of the library core and projects. View
the generated documentation for the library core in your chosen web browser for
further Getting Started information.
The documentation for the library itself (but not the documentation for the
individual demos, projects or bootloaders) is also available as a seperate

@ -10,7 +10,7 @@
# Call with "make all" to rebuild everything, "make clean" to clean everything,
# "make clean_list" to remove all intermediatary files but preserve any binaries,
# "make doxygen" to document everything with DoxyGen (if installed) and
# "make doxygen" to document everything with Doxygen (if installed) and
# "make clean_doxygen" to remove generated Doxygen documentation from everything.
all:

Loading…
Cancel
Save