forked from mfulz_github/qmk_firmware
Clean up MassStorageKeyboard demo.
This commit is contained in:
parent
7f9f97c792
commit
58a39c6666
|
@ -29,6 +29,10 @@
|
|||
this software.
|
||||
*/
|
||||
|
||||
#if (USE_INTERNAL_SERIAL == NO_DESCRIPTOR)
|
||||
#warning USE_INTERNAL_SERIAL is not available on this AVR - please manually construct a device serial descriptor.
|
||||
#endif
|
||||
|
||||
/** \file
|
||||
*
|
||||
* USB Device Descriptors, for library use when in USB device mode. Descriptors are special
|
||||
|
@ -129,7 +133,7 @@ USB_Descriptor_Configuration_t PROGMEM ConfigurationDescriptor =
|
|||
.MaxPowerConsumption = USB_CONFIG_POWER_MA(100)
|
||||
},
|
||||
|
||||
.Interface =
|
||||
.MassStorageInterface =
|
||||
{
|
||||
.Header = {.Size = sizeof(USB_Descriptor_Interface_t), .Type = DTYPE_Interface},
|
||||
|
||||
|
@ -145,7 +149,7 @@ USB_Descriptor_Configuration_t PROGMEM ConfigurationDescriptor =
|
|||
.InterfaceStrIndex = NO_DESCRIPTOR
|
||||
},
|
||||
|
||||
.DataInEndpoint =
|
||||
.MassStorageDataInEndpoint =
|
||||
{
|
||||
.Header = {.Size = sizeof(USB_Descriptor_Endpoint_t), .Type = DTYPE_Endpoint},
|
||||
|
||||
|
@ -155,7 +159,7 @@ USB_Descriptor_Configuration_t PROGMEM ConfigurationDescriptor =
|
|||
.PollingIntervalMS = 0x00
|
||||
},
|
||||
|
||||
.DataOutEndpoint =
|
||||
.MassStorageDataOutEndpoint =
|
||||
{
|
||||
.Header = {.Size = sizeof(USB_Descriptor_Endpoint_t), .Type = DTYPE_Endpoint},
|
||||
|
||||
|
@ -181,8 +185,6 @@ USB_Descriptor_Configuration_t PROGMEM ConfigurationDescriptor =
|
|||
.InterfaceStrIndex = NO_DESCRIPTOR
|
||||
},
|
||||
|
||||
|
||||
|
||||
.KeyboardHID =
|
||||
{
|
||||
.Header = {.Size = sizeof(USB_HID_Descriptor_t), .Type = DTYPE_HID},
|
||||
|
|
|
@ -44,10 +44,6 @@
|
|||
#include <LUFA/Drivers/USB/Class/MassStorage.h>
|
||||
#include <LUFA/Drivers/USB/Class/HID.h>
|
||||
|
||||
#if (USE_INTERNAL_SERIAL == NO_DESCRIPTOR)
|
||||
#warning USE_INTERNAL_SERIAL is not available on this AVR - please manually construct a device serial descriptor.
|
||||
#endif
|
||||
|
||||
/* Macros: */
|
||||
/** Endpoint number of the Keyboard HID reporting IN endpoint. */
|
||||
#define KEYBOARD_EPNUM 1
|
||||
|
@ -72,23 +68,14 @@
|
|||
typedef struct
|
||||
{
|
||||
USB_Descriptor_Configuration_Header_t Config;
|
||||
USB_Descriptor_Interface_t Interface;
|
||||
USB_Descriptor_Endpoint_t DataInEndpoint;
|
||||
USB_Descriptor_Endpoint_t DataOutEndpoint;
|
||||
USB_Descriptor_Interface_t MassStorageInterface;
|
||||
USB_Descriptor_Endpoint_t MassStorageDataInEndpoint;
|
||||
USB_Descriptor_Endpoint_t MassStorageDataOutEndpoint;
|
||||
USB_Descriptor_Interface_t KeyboardInterface;
|
||||
USB_HID_Descriptor_t KeyboardHID;
|
||||
USB_Descriptor_Endpoint_t KeyboardEndpoint;
|
||||
} USB_Descriptor_Configuration_t;
|
||||
|
||||
/* typedef struct
|
||||
{
|
||||
USB_Descriptor_Configuration_Header_t Config;
|
||||
USB_Descriptor_Interface_t Interface;
|
||||
USB_HID_Descriptor_t KeyboardHID;
|
||||
USB_Descriptor_Endpoint_t KeyboardEndpoint;
|
||||
} USB_Descriptor_Configuration_keyboard_t;
|
||||
// */
|
||||
|
||||
/* Function Prototypes: */
|
||||
uint16_t CALLBACK_USB_GetDescriptor(const uint16_t wValue, const uint8_t wIndex, void** const DescriptorAddress)
|
||||
ATTR_WARN_UNUSED_RESULT ATTR_NON_NULL_PTR_ARG(3);
|
||||
|
|
|
@ -118,12 +118,6 @@ void SetupHardware(void)
|
|||
|
||||
/* Clear Dataflash sector protections, if enabled */
|
||||
DataflashManager_ResetDataflashProtections();
|
||||
|
||||
/* Millisecond timer initialization, with output compare interrupt enabled for the HID idle timing */
|
||||
OCR0A = ((F_CPU / 64) / 1000);
|
||||
TCCR0A = (1 << WGM01);
|
||||
TCCR0B = ((1 << CS01) | (1 << CS00));
|
||||
TIMSK0 = (1 << OCIE0A);
|
||||
}
|
||||
|
||||
/** Event handler for the library USB Connection event. */
|
||||
|
@ -145,8 +139,11 @@ void EVENT_USB_Device_ConfigurationChanged(void)
|
|||
|
||||
if (!(MS_Device_ConfigureEndpoints(&Disk_MS_Interface)))
|
||||
LEDs_SetAllLEDs(LEDMASK_USB_ERROR);
|
||||
|
||||
if (!(HID_Device_ConfigureEndpoints(&Keyboard_HID_Interface)))
|
||||
LEDs_SetAllLEDs(LEDMASK_USB_ERROR);
|
||||
|
||||
USB_Device_EnableSOFEvents();
|
||||
}
|
||||
|
||||
/** Event handler for the library USB Unhandled Control Request event. */
|
||||
|
@ -171,8 +168,8 @@ bool CALLBACK_MS_Device_SCSICommandReceived(USB_ClassInfo_MS_Device_t* MSInterfa
|
|||
return CommandSuccess;
|
||||
}
|
||||
|
||||
/** ISR to keep track of each millisecond interrupt, for determining the HID class idle period remaining when set. */
|
||||
ISR(TIMER0_COMPA_vect, ISR_BLOCK)
|
||||
/** Event handler for the USB device Start Of Frame event. */
|
||||
void EVENT_USB_Device_StartOfFrame(void)
|
||||
{
|
||||
HID_Device_MillisecondElapsed(&Keyboard_HID_Interface);
|
||||
}
|
||||
|
|
|
@ -87,6 +87,7 @@
|
|||
void EVENT_USB_Device_Disconnect(void);
|
||||
void EVENT_USB_Device_ConfigurationChanged(void);
|
||||
void EVENT_USB_Device_UnhandledControlRequest(void);
|
||||
void EVENT_USB_Device_StartOfFrame(void);
|
||||
|
||||
bool CALLBACK_MS_Device_SCSICommandReceived(USB_ClassInfo_MS_Device_t* MSInterfaceInfo);
|
||||
|
||||
|
|
|
@ -198,7 +198,7 @@
|
|||
typedef struct
|
||||
{
|
||||
uint16_t BitOffset; /**< Bit offset in the IN, OUT or FEATURE report of the item. */
|
||||
uint8_t ItemType; /**< Report item type, a value in HID_Types_t. */
|
||||
uint8_t ItemType; /**< Report item type, a value in HID_ReportItemTypes_t. */
|
||||
uint16_t ItemFlags; /**< Item data flags, such as constant/variable, etc. */
|
||||
uint8_t ReportID; /**< Report ID this item belongs to, or 0x00 if device has only one report */
|
||||
HID_CollectionPath_t* CollectionPath; /**< Collection path of the item. */
|
||||
|
|
|
@ -20,6 +20,8 @@
|
|||
* - Renamed the AVRISP project folder to AVRISP-MKII to reduce confusion
|
||||
* - Renamed the RESET_LINE_* makefile tokens in the AVRISP MKII Project to AUX_LINE_*, as they are not always used for target
|
||||
* reset
|
||||
* - Changed over the MassStorageKeyboard Class driver device demo to use Start of Frame events rather than a timer to keep track
|
||||
* of elapsed milliseconds
|
||||
*
|
||||
* <b>Fixed:</b>
|
||||
* - Fixed AVRISP project not able to enter programming mode when ISP protocol is used
|
||||
|
|
|
@ -27,6 +27,7 @@
|
|||
* - Demos/Projects
|
||||
* -# Multiple-Report HID device
|
||||
* -# Device/Host USB bridge
|
||||
* -# Alternative (USB-IF endorsed) USB-Ethernet Classes
|
||||
* -# Finish BluetoothHost demo
|
||||
* -# Finish MIDI class Bootloader
|
||||
* -# Finish SideShow demo
|
||||
|
|
Loading…
Reference in New Issue