aboutsummaryrefslogtreecommitdiff
path: root/Demos/Device/LowLevel/GenericHID
diff options
context:
space:
mode:
authorDean <Dean@d5102386-fcda-11dd-9fdb-3debd5008f28>2011-09-21 06:35:28 +0000
committerDean <Dean@d5102386-fcda-11dd-9fdb-3debd5008f28>2011-09-21 06:35:28 +0000
commitffc451fbd9631b4e0a45bce36dda3e34facee2de (patch)
treecc4e8c2d4fb4b519f80c87cc13c32cdafd4c52d8 /Demos/Device/LowLevel/GenericHID
parent44e3311de4c0d12b228bce55edc4ceff690d4f91 (diff)
Add LUFA-111009-BETA tag.LUFA-111009-BETA
git-svn-id: http://lufa-lib.googlecode.com/svn/tags/LUFA-111009-BETA@1929 d5102386-fcda-11dd-9fdb-3debd5008f28
Diffstat (limited to 'Demos/Device/LowLevel/GenericHID')
-rw-r--r--Demos/Device/LowLevel/GenericHID/Descriptors.c6
-rw-r--r--Demos/Device/LowLevel/GenericHID/GenericHID.c34
2 files changed, 27 insertions, 13 deletions
diff --git a/Demos/Device/LowLevel/GenericHID/Descriptors.c b/Demos/Device/LowLevel/GenericHID/Descriptors.c
index abc9e801..79697ece 100644
--- a/Demos/Device/LowLevel/GenericHID/Descriptors.c
+++ b/Demos/Device/LowLevel/GenericHID/Descriptors.c
@@ -45,7 +45,7 @@
*/
const USB_Descriptor_HIDReport_Datatype_t PROGMEM GenericReport[] =
{
- HID_RI_USAGE_PAGE(16, 0xFF00), /* Vendor Page 1 */
+ HID_RI_USAGE_PAGE(16, 0xFF00), /* Vendor Page 0 */
HID_RI_USAGE(8, 0x01), /* Vendor Usage 1 */
HID_RI_COLLECTION(8, 0x01), /* Vendor Usage 1 */
HID_RI_USAGE(8, 0x02), /* Vendor Usage 2 */
@@ -143,7 +143,7 @@ const USB_Descriptor_Configuration_t PROGMEM ConfigurationDescriptor =
{
.Header = {.Size = sizeof(USB_Descriptor_Endpoint_t), .Type = DTYPE_Endpoint},
- .EndpointAddress = (ENDPOINT_DESCRIPTOR_DIR_IN | GENERIC_IN_EPNUM),
+ .EndpointAddress = (ENDPOINT_DIR_IN | GENERIC_IN_EPNUM),
.Attributes = (EP_TYPE_INTERRUPT | ENDPOINT_ATTR_NO_SYNC | ENDPOINT_USAGE_DATA),
.EndpointSize = GENERIC_EPSIZE,
.PollingIntervalMS = 0x01
@@ -153,7 +153,7 @@ const USB_Descriptor_Configuration_t PROGMEM ConfigurationDescriptor =
{
.Header = {.Size = sizeof(USB_Descriptor_Endpoint_t), .Type = DTYPE_Endpoint},
- .EndpointAddress = (ENDPOINT_DESCRIPTOR_DIR_OUT | GENERIC_OUT_EPNUM),
+ .EndpointAddress = (ENDPOINT_DIR_OUT | GENERIC_OUT_EPNUM),
.Attributes = (EP_TYPE_INTERRUPT | ENDPOINT_ATTR_NO_SYNC | ENDPOINT_USAGE_DATA),
.EndpointSize = GENERIC_EPSIZE,
.PollingIntervalMS = 0x01
diff --git a/Demos/Device/LowLevel/GenericHID/GenericHID.c b/Demos/Device/LowLevel/GenericHID/GenericHID.c
index 70ca0a5c..69c41765 100644
--- a/Demos/Device/LowLevel/GenericHID/GenericHID.c
+++ b/Demos/Device/LowLevel/GenericHID/GenericHID.c
@@ -36,9 +36,6 @@
#include "GenericHID.h"
-/** Static buffer to hold the last received report from the host, so that it can be echoed back in the next sent report */
-static uint8_t LastReceived[GENERIC_REPORT_SIZE];
-
/** Main program entry point. This routine configures the hardware required by the application, then
* enters a loop to run the application tasks in sequence.
@@ -155,13 +152,26 @@ void EVENT_USB_Device_ControlRequest(void)
void ProcessGenericHIDReport(uint8_t* DataArray)
{
/*
- This is where you need to process the reports being sent from the host to the device.
- DataArray is an array holding the last report from the host. This function is called
- each time the host has sent a report to the device.
+ This is where you need to process reports sent from the host to the device. This
+ function is called each time the host has sent a new report. DataArray is an array
+ holding the report sent from the host.
*/
- for (uint8_t i = 0; i < GENERIC_REPORT_SIZE; i++)
- LastReceived[i] = DataArray[i];
+ uint8_t NewLEDMask = LEDS_NO_LEDS;
+
+ if (DataArray[0])
+ NewLEDMask |= LEDS_LED1;
+
+ if (DataArray[1])
+ NewLEDMask |= LEDS_LED1;
+
+ if (DataArray[2])
+ NewLEDMask |= LEDS_LED1;
+
+ if (DataArray[3])
+ NewLEDMask |= LEDS_LED1;
+
+ LEDs_SetAllLEDs(NewLEDMask);
}
/** Function to create the next report to send back to the host at the next reporting interval.
@@ -176,8 +186,12 @@ void CreateGenericHIDReport(uint8_t* DataArray)
an array to hold the report to the host.
*/
- for (uint8_t i = 0; i < GENERIC_REPORT_SIZE; i++)
- DataArray[i] = LastReceived[i];
+ uint8_t CurrLEDMask = LEDs_GetLEDs();
+
+ DataArray[0] = ((CurrLEDMask & LEDS_LED1) ? 1 : 0);
+ DataArray[1] = ((CurrLEDMask & LEDS_LED2) ? 1 : 0);
+ DataArray[2] = ((CurrLEDMask & LEDS_LED3) ? 1 : 0);
+ DataArray[3] = ((CurrLEDMask & LEDS_LED4) ? 1 : 0);
}
void HID_Task(void)