Spell check all source code variables, comments and strings.

pull/1469/head
Dean Camera 15 years ago
parent c647c27639
commit d6edfe35c8

@ -343,7 +343,7 @@ static void WriteNextResponseByte(const uint8_t Response)
/* Select the IN endpoint so that the next data byte can be written */
Endpoint_SelectEndpoint(CDC_TX_EPNUM);
/* If IN endpoint full, clear it and wait util ready for the next packet to the host */
/* If IN endpoint full, clear it and wait until ready for the next packet to the host */
if (!(Endpoint_IsReadWriteAllowed()))
{
Endpoint_ClearIN();

@ -104,7 +104,7 @@
};
/** Enum for the possible parity modes on a CDC-ACM virtual serial port */
enum BootloaderCDC_CDC_LineCodeingParity_t
enum BootloaderCDC_CDC_LineCodingParity_t
{
Parity_None = 0, /**< No data parity checking */
Parity_Odd = 1, /**< Odd data parity checking */

@ -108,7 +108,7 @@ USB_Descriptor_Configuration_t ConfigurationDescriptor =
.Attributes = (ATTR_CAN_UPLOAD | ATTR_CAN_DOWNLOAD),
.DetatchTimeout = 0x0000,
.DetachTimeout = 0x0000,
.TransferSize = 0x0c00,
.DFUSpecification = VERSION_BCD(01.01)

@ -137,7 +137,7 @@
uint8_t Attributes; /**< DFU device attributes, a mask comprising of the
* ATTR_* macros listed in this source file
*/
uint16_t DetatchTimeout; /**< Timeout in milliseconds between a USB_DETACH
uint16_t DetachTimeout; /**< Timeout in milliseconds between a USB_DETACH
* command being issued and the device detaching
* from the USB bus
*/

@ -113,7 +113,7 @@
USB_Descriptor_Endpoint_t Endpoint; /**< Standard endpoint descriptor describing the audio endpoint */
uint8_t Refresh; /**< Always set to zero */
uint8_t SyncEndpointNumber; /**< Endpoint address to send synchronisation information to, if needed (zero otherwise) */
uint8_t SyncEndpointNumber; /**< Endpoint address to send synchronization information to, if needed (zero otherwise) */
} USB_Audio_StreamEndpoint_Std_t;
/** Type define for an Audio class specific MIDI IN jack. This gives information to the host on a MIDI input, either

@ -88,7 +88,7 @@
union
{
uint16_t EtherType; /**< Ethernet packet subprotocol type, for Ethernet V2 packets */
uint16_t EtherType; /**< Ethernet packet sub-protocol type, for Ethernet V2 packets */
uint16_t Length; /**< Ethernet frame length, for Ethernet V1 packets */
};
} Ethernet_Frame_Header_t;

@ -40,7 +40,7 @@
/** Processes an ICMP packet inside an Ethernet frame, and writes the appropriate response
* to the output Ethernet frame if the host is issuing a ICMP ECHO request.
*
* \param[in] FrameIN Pointer to the incomming Ethernet frame information structure
* \param[in] FrameIN Pointer to the incoming Ethernet frame information structure
* \param[in] InDataStart Pointer to the start of the incoming packet's ICMP header
* \param[out] OutDataStart Pointer to the start of the outgoing packet's ICMP header
*

@ -37,9 +37,9 @@
#include "IP.h"
/** Processes an IP packet inside an Ethernet frame, and writes the appropriate response
* to the output Ethernet frame if one is created by a subprotocol handler.
* to the output Ethernet frame if one is created by a sub-protocol handler.
*
* \param[in] FrameIN Pointer to the incomming Ethernet frame information structure
* \param[in] FrameIN Pointer to the incoming Ethernet frame information structure
* \param[in] InDataStart Pointer to the start of the incoming packet's IP header
* \param[out] OutDataStart Pointer to the start of the outgoing packet's IP header
*

@ -38,7 +38,7 @@
#include "UDP.h"
/** Processes a UDP packet inside an Ethernet frame, and writes the appropriate response
* to the output Ethernet frame if a subprotocol handler has created a response packet.
* to the output Ethernet frame if a sub-protocol handler has created a response packet.
*
* \param[in] IPHeaderInStart Pointer to the start of the incoming packet's IP header
* \param[in] UDPHeaderInStart Pointer to the start of the incoming packet's UDP header

@ -31,7 +31,7 @@
/** \file
*
* Simple webserver application for demonstrating the RNDIS demo and TCP/IP stack. This
* application will serve up a static HTTP webpage when requested by the host.
* application will serve up a static HTTP web page when requested by the host.
*/
#include "Webserver.h"

@ -37,7 +37,7 @@
appear as a new SideShow device which can have gadgets loaded onto
it.
Note that while the incomming content is buffered in packet struct
Note that while the incoming content is buffered in packet struct
form, the data is not actually displayed. It is left to the user to
write sufficient code to read out the packed data for display to a
screen.

@ -274,7 +274,7 @@
USB_Descriptor_Endpoint_t Endpoint; /**< Standard endpoint descriptor describing the audio endpoint */
uint8_t Refresh; /**< Always set to zero */
uint8_t SyncEndpointNumber; /**< Endpoint address to send synchronisation information to, if needed (zero otherwise) */
uint8_t SyncEndpointNumber; /**< Endpoint address to send synchronization information to, if needed (zero otherwise) */
} USB_Audio_StreamEndpoint_Std_t;
/** Type define for an Audio class specific extended endpoint descriptor. This contains extra information

@ -274,7 +274,7 @@
USB_Descriptor_Endpoint_t Endpoint; /**< Standard endpoint descriptor describing the audio endpoint */
uint8_t Refresh; /**< Always set to zero */
uint8_t SyncEndpointNumber; /**< Endpoint address to send synchronisation information to, if needed (zero otherwise) */
uint8_t SyncEndpointNumber; /**< Endpoint address to send synchronization information to, if needed (zero otherwise) */
} USB_Audio_StreamEndpoint_Std_t;
/** Type define for an Audio class specific extended endpoint descriptor. This contains extra information

@ -113,7 +113,7 @@
USB_Descriptor_Endpoint_t Endpoint; /**< Standard endpoint descriptor describing the audio endpoint */
uint8_t Refresh; /**< Always set to zero */
uint8_t SyncEndpointNumber; /**< Endpoint address to send synchronisation information to, if needed (zero otherwise) */
uint8_t SyncEndpointNumber; /**< Endpoint address to send synchronization information to, if needed (zero otherwise) */
} USB_Audio_StreamEndpoint_Std_t;
/** Type define for an Audio class specific MIDI IN jack. This gives information to the host on a MIDI input, either

@ -84,7 +84,7 @@ SCSI_Request_Sense_Response_t SenseData =
* to the appropriate SCSI command handling routine if the issued command is supported by the device, else it returns
* a command failure due to a ILLEGAL REQUEST.
*
* \return Boolean true if the command completed sucessfully, false otherwise
* \return Boolean true if the command completed successfully, false otherwise
*/
bool SCSI_DecodeSCSICommand(void)
{

@ -31,7 +31,7 @@
/** \file
*
* Ethernet frame packet handling routines. This protocol handles the processing of raw Ethernet
* frames sent and received, deferring the processing of subpacket protocols to the appropriate
* frames sent and received, deferring the processing of sub-packet protocols to the appropriate
* protocol handlers, such as DHCP or ARP.
*/

@ -97,7 +97,7 @@
union
{
uint16_t EtherType; /**< Ethernet packet subprotocol type, for Ethernet V2 packets */
uint16_t EtherType; /**< Ethernet packet sub-protocol type, for Ethernet V2 packets */
uint16_t Length; /**< Ethernet frame length, for Ethernet V1 packets */
};
} Ethernet_Frame_Header_t;

@ -37,7 +37,7 @@
#include "IP.h"
/** Processes an IP packet inside an Ethernet frame, and writes the appropriate response
* to the output Ethernet frame if one is created by a subprotocol handler.
* to the output Ethernet frame if one is created by a sub-protocol handler.
*
* \param[in] InDataStart Pointer to the start of the incoming packet's IP header
* \param[out] OutDataStart Pointer to the start of the outgoing packet's IP header

@ -38,7 +38,7 @@
#include "UDP.h"
/** Processes a UDP packet inside an Ethernet frame, and writes the appropriate response
* to the output Ethernet frame if a subprotocol handler has created a response packet.
* to the output Ethernet frame if a sub-protocol handler has created a response packet.
*
* \param[in] IPHeaderInStart Pointer to the start of the incoming packet's IP header
* \param[in] UDPHeaderInStart Pointer to the start of the incoming packet's UDP header

@ -263,7 +263,7 @@ bool CALLBACK_HIDParser_FilterHIDReportItem(HID_ReportItem_t* CurrentItem)
/* Iterate through the item's collection path, until either the root collection node or a collection with the
* Joystick Usage is found - this prevents Mice, which use identical descriptors except for the Joystick usage
* parent node, from being erronously treated as a joystick
* parent node, from being erroneously treated as a joystick
*/
for (HID_CollectionPath_t* CurrPath = CurrentItem->CollectionPath; CurrPath != NULL; CurrPath = CurrPath->Parent)
{

@ -145,7 +145,7 @@ int main(void)
SCSI_Inquiry_Response_t InquiryData;
if (MS_Host_GetInquiryData(&FlashDisk_MS_Interface, 0, &InquiryData))
{
printf("Error retreiving device Inquiry data.\r\n");
printf("Error retrieving device Inquiry data.\r\n");
LEDs_SetAllLEDs(LEDMASK_USB_ERROR);
USB_HostState = HOST_STATE_WaitForDeviceRemoval;
break;

@ -278,7 +278,7 @@ bool CALLBACK_HIDParser_FilterHIDReportItem(HID_ReportItem_t* CurrentItem)
/* Iterate through the item's collection path, until either the root collection node or a collection with the
* Mouse Usage is found - this prevents Joysticks, which use identical descriptors except for the Joystick usage
* parent node, from being erronously treated as a mouse
* parent node, from being erroneously treated as a mouse
*/
for (HID_CollectionPath_t* CurrPath = CurrentItem->CollectionPath; CurrPath != NULL; CurrPath = CurrPath->Parent)
{

@ -50,7 +50,7 @@ uint8_t ProcessConfigurationDescriptor(void)
return ControlErrorDuringConfigRead;
}
/* The bluetooth USB transport addendium mandates that the data (not streaming voice) endpoints
/* The bluetooth USB transport addendum mandates that the data (not streaming voice) endpoints
be in the first interface descriptor (interface 0) */
USB_GetNextDescriptorOfType(&CurrConfigBytesRem, &CurrConfigLocation, DTYPE_Interface);

@ -76,7 +76,7 @@ void Bluetooth_ProcessACLPackets(void)
Pipe_Freeze();
break;
default:
BT_DEBUG("(ACL) >> Unknown Signalling Command 0x%02X", SignalCommandHeader.Code);
BT_DEBUG("(ACL) >> Unknown Signaling Command 0x%02X", SignalCommandHeader.Code);
Pipe_Discard_Stream(ACLPacketHeader.DataLength);
Pipe_ClearIN();

@ -85,7 +85,7 @@ bool CALLBACK_HIDParser_FilterHIDReportItem(HID_ReportItem_t* CurrentItem)
/* Iterate through the item's collection path, until either the root collection node or a collection with the
* Joystick Usage is found - this prevents Mice, which use identical descriptors except for the Mouse usage
* parent node, from being erronously treated as a joystick
* parent node, from being erroneously treated as a joystick
*/
for (HID_CollectionPath_t* CurrPath = CurrentItem->CollectionPath; CurrPath != NULL; CurrPath = CurrPath->Parent)
{

@ -237,7 +237,7 @@ static uint8_t MassStore_GetReturnedStatus(CommandStatusWrapper_t* SCSICommandSt
{
uint8_t ErrorCode = PIPE_RWSTREAM_NoError;
/* If an error in the command ocurred, abort */
/* If an error in the command occurred, abort */
if ((ErrorCode = MassStore_WaitForDataReceived()) != PIPE_RWSTREAM_NoError)
return ErrorCode;

@ -108,7 +108,7 @@
*/
typedef struct
{
uint8_t ReponseCode;
uint8_t ResponseCode;
uint8_t SegmentNumber;

@ -249,7 +249,7 @@ void MassStorage_Task(void)
if (!(ErrorCode))
break;
/* If an error othe than a logical command failure (indicating device busy) returned, abort */
/* If an error other than a logical command failure (indicating device busy) returned, abort */
if (ErrorCode != MASS_STORE_SCSI_COMMAND_FAILED)
{
ShowDiskReadError(PSTR("Test Unit Ready"), ErrorCode);
@ -276,7 +276,7 @@ void MassStorage_Task(void)
/* Display the disk capacity in blocks * block size bytes */
printf_P(PSTR("%lu blocks of %lu bytes.\r\n"), DiskCapacity.Blocks, DiskCapacity.BlockSize);
/* Create a new buffer capabable of holding a single block from the device */
/* Create a new buffer capable of holding a single block from the device */
uint8_t BlockBuffer[DiskCapacity.BlockSize];
/* Read in the first 512 byte block from the device */

@ -85,7 +85,7 @@ bool CALLBACK_HIDParser_FilterHIDReportItem(HID_ReportItem_t* CurrentItem)
/* Iterate through the item's collection path, until either the root collection node or a collection with the
* Mouse Usage is found - this prevents Joysticks, which use identical descriptors except for the Joystick usage
* parent node, from being erronously treated as a mouse
* parent node, from being erroneously treated as a mouse
*/
for (HID_CollectionPath_t* CurrPath = CurrentItem->CollectionPath; CurrPath != NULL; CurrPath = CurrPath->Parent)
{

@ -61,7 +61,7 @@
/* Public Interface - May be used in end-application: */
/* Macros: */
/** Button mask for the first button on the board. */
#define BUTTONS_BUTTON1 // TODO: Add mask for first board buton here
#define BUTTONS_BUTTON1 // TODO: Add mask for first board button here
/* Inline Functions: */
#if !defined(__DOXYGEN__)

@ -185,7 +185,7 @@
Dataflash_SelectChip(SelectedChipMask);
}
/** Spinloops while the currently selected dataflash is busy executing a command, such as a main
/** Spin-loops while the currently selected dataflash is busy executing a command, such as a main
* memory page program or main memory to buffer transfer.
*/
static inline void Dataflash_WaitWhileBusy(void)

@ -205,7 +205,7 @@
ADCSRA |= (1 << ADSC);
}
/** Performs a complete single reading from channel, including a polling spinloop to wait for the
/** Performs a complete single reading from channel, including a polling spin-loop to wait for the
* conversion to complete, and the returning of the converted value.
*
* \param[in] MUXMask Mask comprising of an ADC channel number, reference mask and adjustment mask

@ -41,7 +41,7 @@
* - None
*
* \section Module Description
* Driver for the hardware SPI port avaliable on most AVR models. This module provides
* Driver for the hardware SPI port available on most AVR models. This module provides
* an easy to use driver for the setup of and transfer of data over the AVR's SPI port.
*
* @{

@ -100,7 +100,7 @@
void Serial_TxString(const char *StringPtr) ATTR_NON_NULL_PTR_ARG(1);
/* Inline Functions: */
/** Initializes the USART, ready for serial data transmission and reception. This initialises the interface to
/** 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

@ -40,7 +40,7 @@
* USB mode only. User applications can use this class driver instead of implementing the Audio class manually via
* the low-level LUFA APIs.
*
* This module is designed to simplify the user code by exposing only the required interface needed to interace with
* This module is designed to simplify the user code by exposing only the required interface needed to interface with
* Hosts or Devices using the USB Audio Class.
*
* @{

@ -41,7 +41,7 @@
* Ports, for both Device and Host USB modes. User applications can use this class driver instead of implementing the
* CDC class manually via the low-level LUFA APIs.
*
* This module is designed to simplify the user code by exposing only the required interface needed to interace with
* This module is designed to simplify the user code by exposing only the required interface needed to interface with
* Hosts or Devices using the USB CDC Class.
*
* @{

@ -147,7 +147,7 @@
/** Supported feature mask for an Audio class feature unit descriptor. See the Audio class specification for more details. */
#define FEATURE_BASS_BOOST (1 << 8)
/** Supported feature mask for an Audio class feature unit descriptor. See the Audio class specification for more details. */
#define FEATURE_BASS_LOUDNESS (1 << 9)
@ -346,7 +346,7 @@
USB_Descriptor_Endpoint_t Endpoint; /**< Standard endpoint descriptor describing the audio endpoint */
uint8_t Refresh; /**< Always set to zero */
uint8_t SyncEndpointNumber; /**< Endpoint address to send synchronisation information to, if needed (zero otherwise) */
uint8_t SyncEndpointNumber; /**< Endpoint address to send synchronization information to, if needed (zero otherwise) */
} USB_Audio_StreamEndpoint_Std_t;
/** Type define for an Audio class specific extended endpoint descriptor. This contains extra information

@ -109,7 +109,7 @@
/** SCSI Command Code for a MODE SENSE (10) command. */
#define SCSI_CMD_MODE_SENSE_10 0x5A
/** SCSI Sense Code to indicate no error has ocurred. */
/** SCSI Sense Code to indicate no error has occurred. */
#define SCSI_SENSE_KEY_GOOD 0x00
/** SCSI Sense Code to indicate that the device has recovered from an error. */
@ -121,7 +121,7 @@
/** SCSI Sense Code to indicate an error whilst accessing the medium. */
#define SCSI_SENSE_KEY_MEDIUM_ERROR 0x03
/** SCSI Sense Code to indicate a hardware has ocurred. */
/** SCSI Sense Code to indicate a hardware has occurred. */
#define SCSI_SENSE_KEY_HARDWARE_ERROR 0x04
/** SCSI Sense Code to indicate that an illegal request has been issued. */
@ -138,7 +138,7 @@
/** SCSI Sense Code to indicate an error while trying to write to a write-once medium. */
#define SCSI_SENSE_KEY_BLANK_CHECK 0x08
/** SCSI Sense Code to indicate a vendor specific error has ocurred. */
/** SCSI Sense Code to indicate a vendor specific error has occurred. */
#define SCSI_SENSE_KEY_VENDOR_SPECIFIC 0x09
/** SCSI Sense Code to indicate that an EXTENDED COPY command has aborted due to an error. */
@ -162,7 +162,7 @@
/** SCSI Additional Sense Code to indicate an invalid field was encountered while processing the issued command. */
#define SCSI_ASENSE_INVALID_FIELD_IN_CDB 0x24
/** SCSI Additional Sense Code to indicate that an attemp to write to a protected area was made. */
/** SCSI Additional Sense Code to indicate that an attempt to write to a protected area was made. */
#define SCSI_ASENSE_WRITE_PROTECTED 0x27
/** SCSI Additional Sense Code to indicate an error whilst formatting the device medium. */

@ -69,10 +69,10 @@
* structure controls
*/
uint8_t DataINEndpointNumber; /**< Endpoint number of the incomming Audio Streaming data, if available
uint8_t DataINEndpointNumber; /**< Endpoint number of the incoming Audio Streaming data, if available
* (zero if unused)
*/
uint16_t DataINEndpointSize; /**< Size in bytes of the incomming Audio Streaming data endpoint, if available
uint16_t DataINEndpointSize; /**< Size in bytes of the incoming Audio Streaming data endpoint, if available
* (zero if unused)
*/
@ -102,11 +102,11 @@
*
* \param[in,out] AudioInterfaceInfo Pointer to a structure containing an Audio Class configuration and state
*
* \return Boolean true if the endpoints were sucessfully configured, false otherwise
* \return Boolean true if the endpoints were successfully configured, false otherwise
*/
bool Audio_Device_ConfigureEndpoints(USB_ClassInfo_Audio_Device_t* const AudioInterfaceInfo) ATTR_NON_NULL_PTR_ARG(1);
/** Processes incomming control requests from the host, that are directed to the given Audio class interface. This should be
/** Processes incoming control requests from the host, that are directed to the given Audio class interface. This should be
* linked to the library \ref EVENT_USB_Device_UnhandledControlRequest() event.
*
* \param[in,out] AudioInterfaceInfo Pointer to a structure containing an Audio Class configuration and state
@ -141,7 +141,7 @@
/* Inline Functions: */
/** Reads the next 8-bit audio sample from the current audio interface.
*
* \note This should be preceeded immediately by a call to the USB_Audio_IsSampleReceived() function to ensure that
* \note This should be preceded immediately by a call to the USB_Audio_IsSampleReceived() function to ensure that
* the correct endpoint is selected and ready for data.
*
* \param[in,out] AudioInterfaceInfo Pointer to a structure containing an Audio Class configuration and state
@ -163,7 +163,7 @@
/** Reads the next 16-bit audio sample from the current audio interface.
*
* \note This should be preceeded immediately by a call to the USB_Audio_IsSampleReceived() function to ensure that
* \note This should be preceded immediately by a call to the USB_Audio_IsSampleReceived() function to ensure that
* the correct endpoint is selected and ready for data.
*
* \param[in,out] AudioInterfaceInfo Pointer to a structure containing an Audio Class configuration and state
@ -185,7 +185,7 @@
/** Reads the next 24-bit audio sample from the current audio interface.
*
* \note This should be preceeded immediately by a call to the USB_Audio_IsSampleReceived() function to ensure that
* \note This should be preceded immediately by a call to the USB_Audio_IsSampleReceived() function to ensure that
* the correct endpoint is selected and ready for data.
*
* \param[in,out] AudioInterfaceInfo Pointer to a structure containing an Audio Class configuration and state
@ -206,7 +206,7 @@
/** Writes the next 8-bit audio sample to the current audio interface.
*
* \note This should be preceeded immediately by a call to the USB_Audio_IsReadyForNextSample() function to ensure that
* \note This should be preceded immediately by a call to the USB_Audio_IsReadyForNextSample() function to ensure that
* the correct endpoint is selected and ready for data.
*
* \param[in,out] AudioInterfaceInfo Pointer to a structure containing an Audio Class configuration and state
@ -225,7 +225,7 @@
/** Writes the next 16-bit audio sample to the current audio interface.
*
* \note This should be preceeded immediately by a call to the USB_Audio_IsReadyForNextSample() function to ensure that
* \note This should be preceded immediately by a call to the USB_Audio_IsReadyForNextSample() function to ensure that
* the correct endpoint is selected and ready for data.
*
* \param[in,out] AudioInterfaceInfo Pointer to a structure containing an Audio Class configuration and state
@ -244,7 +244,7 @@
/** Writes the next 24-bit audio sample to the current audio interface.
*
* \note This should be preceeded immediately by a call to the USB_Audio_IsReadyForNextSample() function to ensure that
* \note This should be preceded immediately by a call to the USB_Audio_IsReadyForNextSample() function to ensure that
* the correct endpoint is selected and ready for data.
*
* \param[in,out] AudioInterfaceInfo Pointer to a structure containing an Audio Class configuration and state

@ -116,11 +116,11 @@
*
* \param[in,out] CDCInterfaceInfo Pointer to a structure containing a CDC Class configuration and state
*
* \return Boolean true if the endpoints were sucessfully configured, false otherwise
* \return Boolean true if the endpoints were successfully configured, false otherwise
*/
bool CDC_Device_ConfigureEndpoints(USB_ClassInfo_CDC_Device_t* const CDCInterfaceInfo) ATTR_NON_NULL_PTR_ARG(1);
/** Processes incomming control requests from the host, that are directed to the given CDC class interface. This should be
/** Processes incoming control requests from the host, that are directed to the given CDC class interface. This should be
* linked to the library \ref EVENT_USB_Device_UnhandledControlRequest() event.
*
* \param[in,out] CDCInterfaceInfo Pointer to a structure containing a CDC Class configuration and state
@ -201,7 +201,7 @@
uint8_t CDC_Device_Flush(USB_ClassInfo_CDC_Device_t* const CDCInterfaceInfo) ATTR_NON_NULL_PTR_ARG(1);
/** Sends a Serial Control Line State Change notification to the host. This should be called when the virtual serial
* control lines (DCD, DSR, etc.) have changed states, or to give BREAK notfications to the host. Line states persist
* control lines (DCD, DSR, etc.) have changed states, or to give BREAK notifications to the host. Line states persist
* until they are cleared via a second notification. This should be called each time the CDC class driver's
* ControlLineStates.DeviceToHost value is updated to push the new states to the USB host.
*

@ -61,7 +61,7 @@
* within the user application, and passed to each of the HID class driver functions as the
* HIDInterfaceInfo parameter. This stores each HID interface's configuration and state information.
*
* \note Due to technical limitations, the HID device class driver does not utilize a seperate OUT
* \note Due to technical limitations, the HID device class driver does not utilize a separate OUT
* endpoint for host->device communications. Instead, the host->device data (if any) is sent to
* the device via the control endpoint.
*/
@ -112,11 +112,11 @@
*
* \param[in,out] HIDInterfaceInfo Pointer to a structure containing a HID Class configuration and state
*
* \return Boolean true if the endpoints were sucessfully configured, false otherwise
* \return Boolean true if the endpoints were successfully configured, false otherwise
*/
bool HID_Device_ConfigureEndpoints(USB_ClassInfo_HID_Device_t* HIDInterfaceInfo) ATTR_NON_NULL_PTR_ARG(1);
/** Processes incomming control requests from the host, that are directed to the given HID class interface. This should be
/** Processes incoming control requests from the host, that are directed to the given HID class interface. This should be
* linked to the library \ref EVENT_USB_Device_UnhandledControlRequest() event.
*
* \param[in,out] HIDInterfaceInfo Pointer to a structure containing a HID Class configuration and state

@ -68,8 +68,8 @@
{
uint8_t StreamingInterfaceNumber; /**< Index of the Audio Streaming interface within the device this structure controls */
uint8_t DataINEndpointNumber; /**< Endpoint number of the incomming MIDI data, if available (zero if unused) */
uint16_t DataINEndpointSize; /**< Size in bytes of the incomming MIDI data endpoint, if available (zero if unused) */
uint8_t DataINEndpointNumber; /**< Endpoint number of the incoming MIDI data, if available (zero if unused) */
uint16_t DataINEndpointSize; /**< Size in bytes of the incoming MIDI data endpoint, if available (zero if unused) */
bool DataINEndpointDoubleBank; /** Indicates if the MIDI interface's IN data endpoint should use double banking */
uint8_t DataOUTEndpointNumber; /**< Endpoint number of the outgoing MIDI data, if available (zero if unused) */
@ -93,11 +93,11 @@
*
* \param[in,out] MIDIInterfaceInfo Pointer to a structure containing a MIDI Class configuration and state
*
* \return Boolean true if the endpoints were sucessfully configured, false otherwise
* \return Boolean true if the endpoints were successfully configured, false otherwise
*/
bool MIDI_Device_ConfigureEndpoints(USB_ClassInfo_MIDI_Device_t* const MIDIInterfaceInfo) ATTR_NON_NULL_PTR_ARG(1);
/** Processes incomming control requests from the host, that are directed to the given MIDI class interface. This should be
/** Processes incoming control requests from the host, that are directed to the given MIDI class interface. This should be
* linked to the library \ref EVENT_USB_Device_UnhandledControlRequest() event.
*
* \param[in,out] MIDIInterfaceInfo Pointer to a structure containing a MIDI Class configuration and state

@ -102,11 +102,11 @@
*
* \param[in,out] MSInterfaceInfo Pointer to a structure containing a Mass Storage Class configuration and state
*
* \return Boolean true if the endpoints were sucessfully configured, false otherwise
* \return Boolean true if the endpoints were successfully configured, false otherwise
*/
bool MS_Device_ConfigureEndpoints(USB_ClassInfo_MS_Device_t* const MSInterfaceInfo) ATTR_NON_NULL_PTR_ARG(1);
/** Processes incomming control requests from the host, that are directed to the given Mass Storage class interface. This should be
/** Processes incoming control requests from the host, that are directed to the given Mass Storage class interface. This should be
* linked to the library \ref EVENT_USB_Device_UnhandledControlRequest() event.
*
* \param[in,out] MSInterfaceInfo Pointer to a structure containing a Mass Storage Class configuration and state

@ -111,11 +111,11 @@
*
* \param[in,out] RNDISInterfaceInfo Pointer to a structure containing a RNDIS Class configuration and state
*
* \return Boolean true if the endpoints were sucessfully configured, false otherwise
* \return Boolean true if the endpoints were successfully configured, false otherwise
*/
bool RNDIS_Device_ConfigureEndpoints(USB_ClassInfo_RNDIS_Device_t* const RNDISInterfaceInfo) ATTR_NON_NULL_PTR_ARG(1);
/** Processes incomming control requests from the host, that are directed to the given RNDIS class interface. This should be
/** Processes incoming control requests from the host, that are directed to the given RNDIS class interface. This should be
* linked to the library \ref EVENT_USB_Device_UnhandledControlRequest() event.
*
* \param[in,out] RNDISInterfaceInfo Pointer to a structure containing a RNDIS Class configuration and state

@ -42,7 +42,7 @@
* and Host USB modes. User applications can use this class driver instead of implementing the HID class manually
* via the low-level LUFA APIs.
*
* This module is designed to simplify the user code by exposing only the required interface needed to interace with
* This module is designed to simplify the user code by exposing only the required interface needed to interface with
* Hosts or Devices using the USB HID Class.
*
* @{

@ -105,10 +105,10 @@
bool SupportsBootProtocol; /**< Indicates if the current interface instance supports the HID Boot
* Protocol when enabled via \ref HID_Host_SetBootProtocol()
*/
bool DeviceUsesOUTPipe; /**< Indicates if the current interface instance uses a seperate OUT data pipe for
bool DeviceUsesOUTPipe; /**< Indicates if the current interface instance uses a separate OUT data pipe for
* OUT reports, or if OUT reports are sent via the control pipe instead.
*/
bool UsingBootProtocol; /**< Indicates that the interface is currently initialised in Boot Protocol mode */
bool UsingBootProtocol; /**< Indicates that the interface is currently initialized in Boot Protocol mode */
uint16_t HIDReportSize; /**< Size in bytes of the HID report descriptor in the device */
uint8_t LargestReportSize; /**< Largest report the device will send, in bytes */
@ -159,7 +159,7 @@
/** Receives a HID IN report from the attached HID device, when a report has been received on the HID IN Data pipe.
*
* \note The destination buffer should be large enough to accomodate the largest report that the attached device
* \note The destination buffer should be large enough to accommodate the largest report that the attached device
* can generate.
*
* \param[in,out] HIDInterfaceInfo Pointer to a structure containing a HID Class host configuration and state

@ -86,7 +86,7 @@
uint16_t DataINPipeSize; /**< Size in bytes of the Mass Storage interface's IN data pipe */
uint16_t DataOUTPipeSize; /**< Size in bytes of the Mass Storage interface's OUT data pipe */
uint32_t TransactionTag; /**< Current transaction tag for data synchronising of packets */
uint32_t TransactionTag; /**< Current transaction tag for data synchronizing of packets */
} State; /**< State data for the USB class interface within the device. All elements in this section
* <b>may</b> be set to initial values, but may also be ignored to default to sane values when
* the interface is enumerated.

@ -167,7 +167,7 @@
/** Retrieves the attached printer device's ID string, formatted according to IEEE 1284. This string is sent as a
* Unicode string from the device and is automatically converted to an ASCII encoded C string by this function, thus
* the maximum reportable string length is two less than the size given (to accomodate the Unicode string length
* the maximum reportable string length is two less than the size given (to accommodate the Unicode string length
* bytes which are removed).
*
* This string, when supported, contains the model, manufacturer and acceptable printer languages for the attached device.

@ -38,10 +38,10 @@
*
* \section Module Description
* MIDI Class Driver module. This module contains an internal implementation of the USB MIDI Class, for both Device
* and Host USB modes. User applications can use this class driver instead of implementing the MIDI class manuall
* and Host USB modes. User applications can use this class driver instead of implementing the MIDI class manually
* via the low-level LUFA APIs.
*
* This module is designed to simplify the user code by exposing only the required interface needed to interace with
* This module is designed to simplify the user code by exposing only the required interface needed to interface with
* Hosts or Devices using the USB MIDI Class.
*
* \note The USB MIDI class is actually a special case of the regular Audio class, thus this module depends on

@ -41,7 +41,7 @@
* Device and Host USB modes. User applications can use this class driver instead of implementing the Mass Storage class
* manually via the low-level LUFA APIs.
*
* This module is designed to simplify the user code by exposing only the required interface needed to interace with
* This module is designed to simplify the user code by exposing only the required interface needed to interface with
* Hosts or Devices using the USB Mass Storage Class.
*
* @{

@ -42,7 +42,7 @@
* than high level raster or text functions. User applications can use this class driver instead of implementing the Printer
* class manually via the low-level LUFA APIs.
*
* This module is designed to simplify the user code by exposing only the required interface needed to interace with
* This module is designed to simplify the user code by exposing only the required interface needed to interface with
* Devices using the USB Printer Class.
*
* @{

@ -40,7 +40,7 @@
* Class, for Device USB mode only. User applications can use this class driver instead of implementing the RNDIS
* class manually via the low-level LUFA APIs.
*
* This module is designed to simplify the user code by exposing only the required interface needed to interace with
* This module is designed to simplify the user code by exposing only the required interface needed to interface with
* Hosts using the USB RNDIS Class.
*
* @{

@ -40,7 +40,7 @@
* for USB Host mode only. User applications can use this class driver instead of implementing the Still Image class
* manually via the low-level LUFA APIs.
*
* This module is designed to simplify the user code by exposing only the required interface needed to interace with
* This module is designed to simplify the user code by exposing only the required interface needed to interface with
* Devices using the USB Still Image Class.
*
* @{

@ -192,7 +192,7 @@
* be a standard request that the library has no handler code for, or a class specific request
* issued to the device which must be handled appropriately.
*
* This event is time-critical; eack packet within the request transaction must be acknowedged or
* This event is time-critical; each packet within the request transaction must be acknowledged or
* sent within 50ms or the host will abort the transfer.
*
* \note This event does not exist if the USB_HOST_ONLY token is supplied to the compiler (see
@ -258,7 +258,7 @@
void EVENT_USB_Device_Reset(void);
/** Event for USB Start Of Frame detection, when enabled. This event fires at the start of each USB
* frame, once per millisecond, and is synchronised to the USB bus. This can be used as an accurate
* frame, once per millisecond, and is synchronized to the USB bus. This can be used as an accurate
* millisecond timer source when the USB bus is enumerated in device mode to a USB host.
*
* This event is time-critical; it is run once per millisecond and thus long handlers will significantly

@ -72,7 +72,7 @@
* a unique serial number internally, and setting the device descriptors serial number string index to this value
* will cause it to use the internal serial number.
*
* On unsupported devices, this will evaluate to NO_DESCRIPTOR and so will force the host to create a pseduo-serial
* On unsupported devices, this will evaluate to NO_DESCRIPTOR and so will force the host to create a pseudo-serial
* number for the device.
*/
#define USE_INTERNAL_SERIAL 0xDC

@ -113,7 +113,7 @@
static inline bool USB_Device_IsUSBSuspended(void);
/** Enables the device mode Start Of Frame events. When enabled, this causes the
* \ref EVENT_USB_Device_StartOfFrame() event to fire once per millisecond, synchronised to the USB bus,
* \ref EVENT_USB_Device_StartOfFrame() event to fire once per millisecond, synchronized to the USB bus,
* at the start of each USB frame when enumerated in device mode.
*/
static inline bool USB_Device_EnableSOFEvents(void);

@ -735,7 +735,7 @@
bool Endpoint_ConfigureEndpoint(const uint8_t Number, const uint8_t Type, const uint8_t Direction,
const uint16_t Size, const uint8_t Banks);
/** Spinloops until the currently selected non-control endpoint is ready for the next packet of data
/** Spin-loops until the currently selected non-control endpoint is ready for the next packet of data
* to be read or written to it.
*
* \note This routine should not be called on CONTROL type endpoints.

@ -793,7 +793,7 @@
bool Pipe_ConfigurePipe(const uint8_t Number, const uint8_t Type, const uint8_t Token, const uint8_t EndpointNumber,
const uint16_t Size, const uint8_t Banks);
/** Spinloops until the currently selected non-control pipe is ready for the next packed of data to be read
/** Spin-loops until the currently selected non-control pipe is ready for the next packed of data to be read
* or written to it, aborting in the case of an error condition (such as a timeout or device disconnect).
*
* \ingroup Group_PipeRW

@ -48,7 +48,7 @@ int main(void)
LEDs_SetAllLEDs(LEDMASK_USB_NOTREADY);
for (;;)
{
{
Process_AVRISP_Commands();
V2Params_UpdateParamValues();
@ -111,20 +111,20 @@ void EVENT_USB_Device_ConfigurationChanged(void)
}
}
/** Processes incomming V2 Protocol commands from the host, returning a response when required. */
void Process_AVRISP_Commands(void)
{
/** Processes incoming V2 Protocol commands from the host, returning a response when required. */
void Process_AVRISP_Commands(void)
{
/* Device must be connected and configured for the task to run */
if (USB_DeviceState != DEVICE_STATE_Configured)
return;
return;
Endpoint_SelectEndpoint(AVRISP_DATA_EPNUM);
/* Check to see if a V2 Protocol command has been received */
/* Check to see if a V2 Protocol command has been received */
if (Endpoint_IsOUTReceived())
{
/* Pass off processing of the V2 Protocol command to the V2 Protocol handler */
{
/* Pass off processing of the V2 Protocol command to the V2 Protocol handler */
V2Protocol_ProcessCommand();
}
}
}

@ -36,12 +36,12 @@
#define INCLUDE_FROM_V2PROTOCOL_C
#include "V2Protocol.h"
/** Master V2 Protocol packet handler, for receieved V2 Protocol packets from a connected host.
/** Master V2 Protocol packet handler, for received V2 Protocol packets from a connected host.
* This routine decodes the issued command and passes off the handling of the command to the
* appropriate function.
*/
void V2Protocol_ProcessCommand(void)
{
void V2Protocol_ProcessCommand(void)
{
uint8_t V2Command = Endpoint_Read_Byte();
switch (V2Command)
@ -95,8 +95,8 @@ void V2Protocol_ProcessCommand(void)
}
Endpoint_WaitUntilReady();
Endpoint_SetEndpointDirection(ENDPOINT_DIR_OUT);
}
Endpoint_SetEndpointDirection(ENDPOINT_DIR_OUT);
}
/** Handler for unknown V2 protocol commands. This discards all sent data and returns a
* STATUS_CMD_UNKNOWN status back to the host.
@ -105,7 +105,7 @@ void V2Protocol_ProcessCommand(void)
*/
static void V2Protocol_Command_Unknown(uint8_t V2Command)
{
/* Discard all incomming data */
/* Discard all incoming data */
while (Endpoint_BytesInEndpoint() == AVRISP_DATA_EPSIZE)
{
Endpoint_ClearOUT();
@ -120,7 +120,7 @@ static void V2Protocol_Command_Unknown(uint8_t V2Command)
Endpoint_ClearIN();
}
/** Handler for the CMD_SIGN_ON command, returning the programmer ID string to the host. */
/** Handler for the CMD_SIGN_ON command, returning the programmer ID string to the host. */
static void V2Protocol_Command_SignOn(void)
{
Endpoint_ClearOUT();
@ -151,7 +151,7 @@ static void V2Protocol_Command_GetSetParam(uint8_t V2Command)
Endpoint_Write_Byte(V2Command);
uint8_t ParamPrivs = V2Params_GetParameterPrivellages(ParamID);
uint8_t ParamPrivs = V2Params_GetParameterPrivileges(ParamID);
if ((V2Command == CMD_SET_PARAMETER) && (ParamPrivs & PARAM_PRIV_WRITE))
{

@ -44,43 +44,43 @@ static ParameterItem_t ParameterTable[] =
{
{ .ParamID = PARAM_BUILD_NUMBER_LOW,
.ParamValue = (LUFA_VERSION_INTEGER >> 8),
.ParamPrivellages = PARAM_PRIV_READ },
.ParamPrivileges = PARAM_PRIV_READ },
{ .ParamID = PARAM_BUILD_NUMBER_HIGH,
.ParamValue = (LUFA_VERSION_INTEGER & 0xFF),
.ParamPrivellages = PARAM_PRIV_READ },
.ParamPrivileges = PARAM_PRIV_READ },
{ .ParamID = PARAM_HW_VER,
.ParamValue = 0x00,
.ParamPrivellages = PARAM_PRIV_READ },
.ParamPrivileges = PARAM_PRIV_READ },
{ .ParamID = PARAM_SW_MAJOR,
.ParamValue = 0x01,
.ParamPrivellages = PARAM_PRIV_READ },
.ParamPrivileges = PARAM_PRIV_READ },
{ .ParamID = PARAM_SW_MINOR,
.ParamValue = 0x0C,
.ParamPrivellages = PARAM_PRIV_READ },
.ParamPrivileges = PARAM_PRIV_READ },
{ .ParamID = PARAM_VTARGET,
.ParamValue = 0x32,
.ParamPrivellages = PARAM_PRIV_READ },
.ParamPrivileges = PARAM_PRIV_READ },
{ .ParamID = PARAM_SCK_DURATION,
.ParamValue = (TOTAL_PROGRAMMING_SPEEDS - 1),
.ParamPrivellages = PARAM_PRIV_READ | PARAM_PRIV_WRITE },
.ParamPrivileges = PARAM_PRIV_READ | PARAM_PRIV_WRITE },
{ .ParamID = PARAM_RESET_POLARITY,
.ParamValue = 0x00,
.ParamPrivellages = PARAM_PRIV_WRITE },
.ParamPrivileges = PARAM_PRIV_WRITE },
{ .ParamID = PARAM_STATUS_TGT_CONN,
.ParamValue = 0x00,
.ParamPrivellages = PARAM_PRIV_READ },
.ParamPrivileges = PARAM_PRIV_READ },
{ .ParamID = PARAM_DISCHARGEDELAY,
.ParamValue = 0x00,
.ParamPrivellages = PARAM_PRIV_WRITE },
.ParamPrivileges = PARAM_PRIV_WRITE },
};
@ -104,22 +104,22 @@ void V2Params_UpdateParamValues(void)
#endif
}
/** Retrieves the host PC read/write privellages for a given parameter in the parameter table. This should
/** Retrieves the host PC read/write privileges for a given parameter in the parameter table. This should
* be called before calls to \ref V2Params_GetParameterValue() or \ref V2Params_SetParameterValue() when
* getting or setting parameter values in response to requests from the host.
*
* \param[in] ParamID Parameter ID whose privellages are to be retrieved from the table
* \param[in] ParamID Parameter ID whose privileges are to be retrieved from the table
*
* \return Privellages for the requested parameter, as a mask of PARAM_PRIV_* masks
* \return Privileges for the requested parameter, as a mask of PARAM_PRIV_* masks
*/
uint8_t V2Params_GetParameterPrivellages(uint8_t ParamID)
uint8_t V2Params_GetParameterPrivileges(uint8_t ParamID)
{
ParameterItem_t* ParamInfo = V2Params_GetParamFromTable(ParamID);
if (ParamInfo == NULL)
return 0;
return ParamInfo->ParamPrivellages;
return ParamInfo->ParamPrivileges;
}
/** Retrieves the current value for a given parameter in the parameter table.
@ -132,7 +132,7 @@ uint8_t V2Params_GetParameterValue(uint8_t ParamID)
{
ParameterItem_t* ParamInfo = V2Params_GetParamFromTable(ParamID);
if ((ParamInfo == NULL) || !(ParamInfo->ParamPrivellages & PARAM_PRIV_READ))
if ((ParamInfo == NULL) || !(ParamInfo->ParamPrivileges & PARAM_PRIV_READ))
return 0;
return ParamInfo->ParamValue;
@ -149,7 +149,7 @@ void V2Params_SetParameterValue(uint8_t ParamID, uint8_t Value)
{
ParameterItem_t* ParamInfo = V2Params_GetParamFromTable(ParamID);
if ((ParamInfo == NULL) || !(ParamInfo->ParamPrivellages & PARAM_PRIV_WRITE))
if ((ParamInfo == NULL) || !(ParamInfo->ParamPrivileges & PARAM_PRIV_WRITE))
return;
ParamInfo->ParamValue = Value;
@ -159,7 +159,7 @@ void V2Params_SetParameterValue(uint8_t ParamID, uint8_t Value)
eeprom_write_byte(&EEPROM_Rest_Polarity, Value);
}
/** Retrieves a parameter entry (including ID, value and privellages) from the parameter table that matches the given
/** Retrieves a parameter entry (including ID, value and privileges) from the parameter table that matches the given
* parameter ID.
*
* \param[in] ParamID Parameter ID to find in the table

@ -33,14 +33,14 @@
* Header file for V2ProtocolParams.c.
*/
#ifndef _V2_PROTOCOL_PARAMS_
#define _V2_PROTOCOL_PARAMS_
/* Includes: */
#ifndef _V2_PROTOCOL_PARAMS_
#define _V2_PROTOCOL_PARAMS_
/* Includes: */
#include <avr/io.h>
#include <avr/eeprom.h>
#include <avr/eeprom.h>
#include <LUFA/Version.h>
#include <LUFA/Version.h>
#if defined(ADC)
#include <LUFA/Drivers/Peripheral/ADC.h>
@ -50,32 +50,32 @@
#include "V2ProtocolConstants.h"
/* Macros: */
/** Parameter privellage mask to allow the host PC to read the parameter's value */
/** Parameter privilege mask to allow the host PC to read the parameter's value */
#define PARAM_PRIV_READ (1 << 0)
/** Parameter privellage mask to allow the host PC to change the parameter's value */
/** Parameter privilege mask to allow the host PC to change the parameter's value */
#define PARAM_PRIV_WRITE (1 << 1)
/* Type Defines: */
/** Type define for a parameter table entry indicating a PC readable or writable device parameter. */
typedef struct
{
const uint8_t ParamID; /**< Parameter ID number to uniquely identify the parameter within the device */
uint8_t ParamValue; /**< Current parameter's value within the device */
uint8_t ParamPrivellages; /**< Parameter privellages to allow the host to read or write the parameter's value */
} ParameterItem_t;
uint8_t ParamPrivileges; /**< Parameter privileges to allow the host to read or write the parameter's value */
} ParameterItem_t;
/* Function Prototypes: */
void V2Params_LoadNonVolatileParamValues(void);
void V2Params_UpdateParamValues(void);
uint8_t V2Params_GetParameterPrivellages(uint8_t ParamID);
uint8_t V2Params_GetParameterPrivileges(uint8_t ParamID);
uint8_t V2Params_GetParameterValue(uint8_t ParamID);
void V2Params_SetParameterValue(uint8_t ParamID, uint8_t Value);
#if defined(INCLUDE_FROM_V2PROTOCOL_PARAMS_C)
static ParameterItem_t* V2Params_GetParamFromTable(uint8_t ParamID);
#endif
#endif
#endif

@ -45,7 +45,7 @@ uint32_t CurrentAddress;
*/
uint8_t V2Protocol_GetSPIPrescalerMask(void)
{
static const uint8_t SPIMaskFromSCKDuration[TOTAL_PROGRAMMING_SPEEDS] =
static const uint8_t SPIMaskFromSCKDuration[] =
{
#if (F_CPU == 8000000)
SPI_SPEED_FCPU_DIV_2, // AVRStudio = 8MHz SPI, Actual = 4MHz SPI
@ -77,7 +77,7 @@ uint8_t V2Protocol_GetSPIPrescalerMask(void)
}
/** Asserts or deasserts the target's reset line, using the correct polarity as set by the host using a SET PARAM command.
* When not asserted, the line is tristated so as not to intefere with normal device operation.
* When not asserted, the line is tristated so as not to interfere with normal device operation.
*
* \param[in] ResetTarget Boolean true when the target should be held in reset, false otherwise
*/

@ -83,7 +83,7 @@ RingBuff_Data_t Buffer_GetElement(RingBuff_t* Buffer)
if (!(Buffer->Elements))
return 0;
#elif !defined(BUFF_NOEMPTYCHECK)
#error No empty buffer check behaviour specified.
#error No empty buffer check behavior specified.
#endif
BuffData = *(Buffer->OutPtr);
@ -109,7 +109,7 @@ RingBuff_Data_t Buffer_PeekElement(const RingBuff_t* Buffer)
if (!(Buffer->Elements))
return 0;
#elif !defined(BUFF_NOEMPTYCHECK)
#error No empty buffer check behaviour specified.
#error No empty buffer check behavior specified.
#endif
BuffData = *(Buffer->OutPtr);

@ -1,100 +1,100 @@
/*
Copyright 2009 Denver Gingerich (denver [at] ossguy [dot] com)
Copyright 2009 Dean Camera (dean [at] fourwalledcubicle [dot] com)
Permission to use, copy, modify, and distribute this software
and its documentation for any purpose and without fee is hereby
granted, 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.
*/
/*
NOTE: The user of this include file MUST define the following macros
prior to including the file:
MAG_T1_CLOCK_PIN Pin connected to Track 1 clock wire (ie. PORTC1)
MAG_T1_DATA_PIN Pin connected to Track 1 data wire (ie. PORTC2)
MAG_T2_CLOCK_PIN Pin connected to Track 2 clock wire (ie. PORTC3)
MAG_T2_DATA_PIN Pin connected to Track 2 data wire (ie. PORTC0)
MAG_T3_CLOCK_PIN Pin connected to Track 3 clock wire (ie. PORTC5)
MAG_T3_DATA_PIN Pin connected to Track 3 data wire (ie. PORTC6)
MAG_CLS_PIN Pin connected to card loaded wire (ie. PORTC4)
MAG_PIN PIN macro for the reader's port (ie. PINC)
MAG_DDR DDR macro for the reader's port (ie. DDRC)
MAG_PORT PORT macro for the reader's port (ie. PORTC)
The example macros listed above assume that the Track 2 data wire is
connected to pin 0 on port C, the Track 2 clock wire is connected to
pin 3 on port C (similarly for Tracks 1 and 3), and the card loaded
wire is connected to pin 4 on port C.
If the magstripe reader you are using only reads one or two tracks,
then set the clock and data pins for the tracks it doesn't read to a
pin that is unused. For example, on the AT90USBKey, any of the pins on
port C that do not have wires attached will be unused since they are
not connected to any onboard devices (such as the joystick or
temperature sensor).
Connecting wires to pins on different ports (ie. a data wire to pin 0
on port C and a clock wire to pin 0 on port D) is currently
unsupported. All pins specified above must be on the same port.
*/
/** \file
*
* Driver header for a TTL Magnetic Card reader device (such as the Omron V3B-4K).
*/
#ifndef _MAGSTRIPEHW_H_
#define _MAGSTRIPEHW_H_
/* Includes: */
#include <avr/io.h>
#include <LUFA/Common/Common.h>
/* Private Interface - For use in library only: */
/* Macros: */
/** Mask of the track data, clock and card detection pins. */
#define MAG_MASK (MAG_T1_DATA | MAG_T1_CLOCK | \
MAG_T2_DATA | MAG_T2_CLOCK | \
MAG_T3_DATA | MAG_T3_CLOCK | \
MAG_CARDPRESENT)
/* Public Interface - May be used in end-application: */
/* Inline Functions: */
/** Initializes the magnetic stripe card reader ports and pins so that the card reader
* device can be controlled and read by the card reader driver. This must be called before
* trying to read any of the card reader's status lines.
*/
static inline void Magstripe_Init(void)
{
MAG_DDR &= ~MAG_MASK;
MAG_PORT |= MAG_MASK;
};
/** Returns the status of all the magnetic card reader's outputs.
*
* \return A mask indicating which card lines are high or low
*/
static inline uint8_t Magstripe_GetStatus(void) ATTR_WARN_UNUSED_RESULT;
static inline uint8_t Magstripe_GetStatus(void)
{
/* Magstripe IOs are active low and must be inverted when read */
return ((uint8_t)~MAG_PIN & MAG_MASK);
}
#endif
/*
Copyright 2009 Denver Gingerich (denver [at] ossguy [dot] com)
Copyright 2009 Dean Camera (dean [at] fourwalledcubicle [dot] com)
Permission to use, copy, modify, and distribute this software
and its documentation for any purpose and without fee is hereby
granted, 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.
*/
/*
NOTE: The user of this include file MUST define the following macros
prior to including the file:
MAG_T1_CLOCK_PIN Pin connected to Track 1 clock wire (i.e.. PORTC1)
MAG_T1_DATA_PIN Pin connected to Track 1 data wire (i.e.. PORTC2)
MAG_T2_CLOCK_PIN Pin connected to Track 2 clock wire (i.e.. PORTC3)
MAG_T2_DATA_PIN Pin connected to Track 2 data wire (i.e.. PORTC0)
MAG_T3_CLOCK_PIN Pin connected to Track 3 clock wire (i.e.. PORTC5)
MAG_T3_DATA_PIN Pin connected to Track 3 data wire (i.e.. PORTC6)
MAG_CLS_PIN Pin connected to card loaded wire (i.e.. PORTC4)
MAG_PIN PIN macro for the reader's port (i.e.. PINC)
MAG_DDR DDR macro for the reader's port (i.e.. DDRC)
MAG_PORT PORT macro for the reader's port (i.e.. PORTC)
The example macros listed above assume that the Track 2 data wire is
connected to pin 0 on port C, the Track 2 clock wire is connected to
pin 3 on port C (similarly for Tracks 1 and 3), and the card loaded
wire is connected to pin 4 on port C.
If the mag-stripe reader you are using only reads one or two tracks,
then set the clock and data pins for the tracks it doesn't read to a
pin that is unused. For example, on the AT90USBKey, any of the pins on
port C that do not have wires attached will be unused since they are
not connected to any onboard devices (such as the joystick or
temperature sensor).
Connecting wires to pins on different ports (i.e.. a data wire to pin 0
on port C and a clock wire to pin 0 on port D) is currently
unsupported. All pins specified above must be on the same port.
*/
/** \file
*
* Driver header for a TTL Magnetic Card reader device (such as the Omron V3B-4K).
*/
#ifndef _MAGSTRIPEHW_H_
#define _MAGSTRIPEHW_H_
/* Includes: */
#include <avr/io.h>
#include <LUFA/Common/Common.h>
/* Private Interface - For use in library only: */
/* Macros: */
/** Mask of the track data, clock and card detection pins. */
#define MAG_MASK (MAG_T1_DATA | MAG_T1_CLOCK | \
MAG_T2_DATA | MAG_T2_CLOCK | \
MAG_T3_DATA | MAG_T3_CLOCK | \
MAG_CARDPRESENT)
/* Public Interface - May be used in end-application: */
/* Inline Functions: */
/** Initializes the magnetic stripe card reader ports and pins so that the card reader
* device can be controlled and read by the card reader driver. This must be called before
* trying to read any of the card reader's status lines.
*/
static inline void Magstripe_Init(void)
{
MAG_DDR &= ~MAG_MASK;
MAG_PORT |= MAG_MASK;
};
/** Returns the status of all the magnetic card reader's outputs.
*
* \return A mask indicating which card lines are high or low
*/
static inline uint8_t Magstripe_GetStatus(void) ATTR_WARN_UNUSED_RESULT;
static inline uint8_t Magstripe_GetStatus(void)
{
/* Mag-stripe IOs are active low and must be inverted when read */
return ((uint8_t)~MAG_PIN & MAG_MASK);
}
#endif

@ -83,7 +83,7 @@ RingBuff_Data_t Buffer_GetElement(RingBuff_t* Buffer)
if (!(Buffer->Elements))
return 0;
#elif !defined(BUFF_NOEMPTYCHECK)
#error No empty buffer check behaviour specified.
#error No empty buffer check behavior specified.
#endif
BuffData = *(Buffer->OutPtr);
@ -109,7 +109,7 @@ RingBuff_Data_t Buffer_PeekElement(const RingBuff_t* Buffer)
if (!(Buffer->Elements))
return 0;
#elif !defined(BUFF_NOEMPTYCHECK)
#error No empty buffer check behaviour specified.
#error No empty buffer check behavior specified.
#endif
BuffData = *(Buffer->OutPtr);

Loading…
Cancel
Save