projects
/
pub
/
USBasp.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Add Benito board LED driver to the Benito Programmer project.
[pub/USBasp.git]
/
Demos
/
Host
/
LowLevel
/
MouseHostWithParser
/
MouseHostWithParser.c
diff --git
a/Demos/Host/LowLevel/MouseHostWithParser/MouseHostWithParser.c
b/Demos/Host/LowLevel/MouseHostWithParser/MouseHostWithParser.c
index
5f0d358
..
b5b41ce
100644
(file)
--- a/
Demos/Host/LowLevel/MouseHostWithParser/MouseHostWithParser.c
+++ b/
Demos/Host/LowLevel/MouseHostWithParser/MouseHostWithParser.c
@@
-43,8
+43,7
@@
int main(void)
{
\r
SetupHardware();
\r
\r
{
\r
SetupHardware();
\r
\r
- puts_P(PSTR(ESC_RESET ESC_BG_WHITE ESC_INVERSE_ON ESC_ERASE_DISPLAY
\r
- "Mouse HID Parser Host Demo running.\r\n" ESC_INVERSE_OFF));
\r
+ puts_P(PSTR(ESC_FG_CYAN "Mouse HID Parser Host Demo running.\r\n" ESC_FG_WHITE));
\r
\r
LEDs_SetAllLEDs(LEDMASK_USB_NOTREADY);
\r
\r
\r
LEDs_SetAllLEDs(LEDMASK_USB_NOTREADY);
\r
\r
@@
-74,36
+73,36
@@
void SetupHardware(void)
/** Event handler for the USB_DeviceAttached event. This indicates that a device has been attached to the host, and
\r
* starts the library USB task to begin the enumeration and USB management process.
\r
*/
\r
/** Event handler for the USB_DeviceAttached event. This indicates that a device has been attached to the host, and
\r
* starts the library USB task to begin the enumeration and USB management process.
\r
*/
\r
-void EVENT_USB_DeviceAttached(void)
\r
+void EVENT_USB_
Host_
DeviceAttached(void)
\r
{
\r
{
\r
- puts_P(PSTR(
"Device Attached.\r\n"
));
\r
+ puts_P(PSTR(
ESC_FG_GREEN "Device Attached.\r\n" ESC_FG_WHITE
));
\r
LEDs_SetAllLEDs(LEDMASK_USB_ENUMERATING);
\r
}
\r
\r
/** Event handler for the USB_DeviceUnattached event. This indicates that a device has been removed from the host, and
\r
* stops the library USB task management process.
\r
*/
\r
LEDs_SetAllLEDs(LEDMASK_USB_ENUMERATING);
\r
}
\r
\r
/** Event handler for the USB_DeviceUnattached event. This indicates that a device has been removed from the host, and
\r
* stops the library USB task management process.
\r
*/
\r
-void EVENT_USB_DeviceUnattached(void)
\r
+void EVENT_USB_
Host_
DeviceUnattached(void)
\r
{
\r
{
\r
- puts_P(PSTR(
"Device Unattached.\r\n"
));
\r
+ puts_P(PSTR(
ESC_FG_GREEN "Device Unattached.\r\n" ESC_FG_WHITE
));
\r
LEDs_SetAllLEDs(LEDMASK_USB_NOTREADY);
\r
}
\r
\r
/** Event handler for the USB_DeviceEnumerationComplete event. This indicates that a device has been successfully
\r
* enumerated by the host and is now ready to be used by the application.
\r
*/
\r
LEDs_SetAllLEDs(LEDMASK_USB_NOTREADY);
\r
}
\r
\r
/** Event handler for the USB_DeviceEnumerationComplete event. This indicates that a device has been successfully
\r
* enumerated by the host and is now ready to be used by the application.
\r
*/
\r
-void EVENT_USB_DeviceEnumerationComplete(void)
\r
+void EVENT_USB_
Host_
DeviceEnumerationComplete(void)
\r
{
\r
LEDs_SetAllLEDs(LEDMASK_USB_READY);
\r
}
\r
\r
/** Event handler for the USB_HostError event. This indicates that a hardware error occurred while in host mode. */
\r
{
\r
LEDs_SetAllLEDs(LEDMASK_USB_READY);
\r
}
\r
\r
/** Event handler for the USB_HostError event. This indicates that a hardware error occurred while in host mode. */
\r
-void EVENT_USB_HostError(const uint8_t ErrorCode)
\r
+void EVENT_USB_Host
_Host
Error(const uint8_t ErrorCode)
\r
{
\r
USB_ShutDown();
\r
\r
{
\r
USB_ShutDown();
\r
\r
- puts_P(PSTR(ESC_
B
G_RED "Host Mode Error\r\n"));
\r
- printf_P(PSTR(" -- Error Code %d\r\n"), ErrorCode);
\r
+ puts_P(PSTR(ESC_
F
G_RED "Host Mode Error\r\n"));
\r
+ printf_P(PSTR(" -- Error Code %d\r\n"
ESC_FG_WHITE
), ErrorCode);
\r
\r
LEDs_SetAllLEDs(LEDMASK_USB_ERROR);
\r
for(;;);
\r
\r
LEDs_SetAllLEDs(LEDMASK_USB_ERROR);
\r
for(;;);
\r
@@
-112,12
+111,12
@@
void EVENT_USB_HostError(const uint8_t ErrorCode)
/** Event handler for the USB_DeviceEnumerationFailed event. This indicates that a problem occurred while
\r
* enumerating an attached USB device.
\r
*/
\r
/** Event handler for the USB_DeviceEnumerationFailed event. This indicates that a problem occurred while
\r
* enumerating an attached USB device.
\r
*/
\r
-void EVENT_USB_DeviceEnumerationFailed(const uint8_t ErrorCode, const uint8_t SubErrorCode)
\r
+void EVENT_USB_
Host_
DeviceEnumerationFailed(const uint8_t ErrorCode, const uint8_t SubErrorCode)
\r
{
\r
{
\r
- puts_P(PSTR(ESC_
B
G_RED "Dev Enum Error\r\n"));
\r
+ puts_P(PSTR(ESC_
F
G_RED "Dev Enum Error\r\n"));
\r
printf_P(PSTR(" -- Error Code %d\r\n"), ErrorCode);
\r
printf_P(PSTR(" -- Sub Error Code %d\r\n"), SubErrorCode);
\r
printf_P(PSTR(" -- Error Code %d\r\n"), ErrorCode);
\r
printf_P(PSTR(" -- Sub Error Code %d\r\n"), SubErrorCode);
\r
- printf_P(PSTR(" -- In State %d\r\n"), USB_HostState);
\r
+ printf_P(PSTR(" -- In State %d\r\n"
ESC_FG_WHITE
), USB_HostState);
\r
\r
LEDs_SetAllLEDs(LEDMASK_USB_ERROR);
\r
}
\r
\r
LEDs_SetAllLEDs(LEDMASK_USB_ERROR);
\r
}
\r
@@
-139,58
+138,55
@@
void Mouse_HID_Task(void)
if ((ErrorCode = ProcessConfigurationDescriptor()) != SuccessfulConfigRead)
\r
{
\r
if (ErrorCode == ControlError)
\r
if ((ErrorCode = ProcessConfigurationDescriptor()) != SuccessfulConfigRead)
\r
{
\r
if (ErrorCode == ControlError)
\r
- puts_P(PSTR("Control Error (Get Configuration).\r\n"));
\r
+ puts_P(PSTR(
ESC_FG_RED
"Control Error (Get Configuration).\r\n"));
\r
else
\r
else
\r
- puts_P(PSTR("Invalid Device.\r\n"));
\r
+ puts_P(PSTR(
ESC_FG_RED
"Invalid Device.\r\n"));
\r
\r
\r
- printf_P(PSTR(" -- Error Code: %d\r\n"), ErrorCode);
\r
+ printf_P(PSTR(" -- Error Code: %d\r\n"
ESC_FG_WHITE
), ErrorCode);
\r
\r
/* Indicate error via status LEDs */
\r
LEDs_SetAllLEDs(LEDMASK_USB_ERROR);
\r
\r
/* Wait until USB device disconnected */
\r
\r
/* Indicate error via status LEDs */
\r
LEDs_SetAllLEDs(LEDMASK_USB_ERROR);
\r
\r
/* Wait until USB device disconnected */
\r
-
while (USB_IsConnected)
;
\r
+
USB_HostState = HOST_STATE_WaitForDeviceRemoval
;
\r
break;
\r
}
\r
\r
/* Set the device configuration to the first configuration (rarely do devices use multiple configurations) */
\r
if ((ErrorCode = USB_Host_SetDeviceConfiguration(1)) != HOST_SENDCONTROL_Successful)
\r
{
\r
break;
\r
}
\r
\r
/* Set the device configuration to the first configuration (rarely do devices use multiple configurations) */
\r
if ((ErrorCode = USB_Host_SetDeviceConfiguration(1)) != HOST_SENDCONTROL_Successful)
\r
{
\r
- puts_P(PSTR("Control Error (Set Configuration).\r\n"));
\r
- printf_P(PSTR(" -- Error Code: %d\r\n"), ErrorCode);
\r
+ puts_P(PSTR(
ESC_FG_RED
"Control Error (Set Configuration).\r\n"));
\r
+ printf_P(PSTR(" -- Error Code: %d\r\n"
ESC_FG_WHITE
), ErrorCode);
\r
\r
/* Indicate error via status LEDs */
\r
LEDs_SetAllLEDs(LEDMASK_USB_ERROR);
\r
\r
/* Wait until USB device disconnected */
\r
\r
/* Indicate error via status LEDs */
\r
LEDs_SetAllLEDs(LEDMASK_USB_ERROR);
\r
\r
/* Wait until USB device disconnected */
\r
-
while (USB_IsConnected)
;
\r
+
USB_HostState = HOST_STATE_WaitForDeviceRemoval
;
\r
break;
\r
}
\r
\r
break;
\r
}
\r
\r
- USB_HostState = HOST_STATE_Configured;
\r
- break;
\r
- case HOST_STATE_Configured:
\r
puts_P(PSTR("Processing HID Report.\r\n"));
\r
\r
/* Get and process the device's first HID report descriptor */
\r
if ((ErrorCode = GetHIDReportData()) != ParseSuccessful)
\r
{
\r
puts_P(PSTR("Processing HID Report.\r\n"));
\r
\r
/* Get and process the device's first HID report descriptor */
\r
if ((ErrorCode = GetHIDReportData()) != ParseSuccessful)
\r
{
\r
- puts_P(PSTR("Report Parse Error.\r\n"));
\r
- printf_P(PSTR(" -- Error Code: %d\r\n"), ErrorCode);
\r
+ puts_P(PSTR(
ESC_FG_RED
"Report Parse Error.\r\n"));
\r
+ printf_P(PSTR(" -- Error Code: %d\r\n"
ESC_FG_WHITE
), ErrorCode);
\r
\r
/* Indicate error via status LEDs */
\r
LEDs_SetAllLEDs(LEDMASK_USB_ERROR);
\r
\r
/* Wait until USB device disconnected */
\r
\r
/* Indicate error via status LEDs */
\r
LEDs_SetAllLEDs(LEDMASK_USB_ERROR);
\r
\r
/* Wait until USB device disconnected */
\r
-
while (USB_IsConnected)
;
\r
+
USB_HostState = HOST_STATE_WaitForDeviceRemoval
;
\r
break;
\r
}
\r
\r
puts_P(PSTR("Mouse Enumerated.\r\n"));
\r
break;
\r
}
\r
\r
puts_P(PSTR("Mouse Enumerated.\r\n"));
\r
-
\r
- USB_HostState = HOST_STATE_
Ready
;
\r
+
\r
+ USB_HostState = HOST_STATE_
Configured
;
\r
break;
\r
break;
\r
- case HOST_STATE_
Ready
:
\r
+ case HOST_STATE_
Configured
:
\r
/* Select and unfreeze mouse data pipe */
\r
Pipe_SelectPipe(MOUSE_DATAPIPE);
\r
Pipe_Unfreeze();
\r
/* Select and unfreeze mouse data pipe */
\r
Pipe_SelectPipe(MOUSE_DATAPIPE);
\r
Pipe_Unfreeze();
\r
@@
-224,7
+220,7
@@
void Mouse_HID_Task(void)
/** Processes a read HID report from an attached mouse, extracting out elements via the HID parser results
\r
* as required and displays movement and button presses on the board LEDs.
\r
*
\r
/** Processes a read HID report from an attached mouse, extracting out elements via the HID parser results
\r
* as required and displays movement and button presses on the board LEDs.
\r
*
\r
- * \param MouseReport Pointer to a HID report from an attached mouse device
\r
+ * \param
[in]
MouseReport Pointer to a HID report from an attached mouse device
\r
*/
\r
void ProcessMouseReport(uint8_t* MouseReport)
\r
{
\r
*/
\r
void ProcessMouseReport(uint8_t* MouseReport)
\r
{
\r
@@
-264,12
+260,7
@@
void ProcessMouseReport(uint8_t* MouseReport)
if (!(FoundData))
\r
continue;
\r
\r
if (!(FoundData))
\r
continue;
\r
\r
- int16_t DeltaMovement;
\r
-
\r
- if (ReportItem->Attributes.BitSize > 8)
\r
- DeltaMovement = (int16_t)ReportItem->Value;
\r
- else
\r
- DeltaMovement = (int8_t)ReportItem->Value;
\r
+ int16_t DeltaMovement = (int16_t)(ReportItem->Value << (16 - ReportItem->Attributes.BitSize));
\r
\r
/* Determine if the report is for the X or Y delta movement */
\r
if (ReportItem->Attributes.Usage.Usage == USAGE_X)
\r
\r
/* Determine if the report is for the X or Y delta movement */
\r
if (ReportItem->Attributes.Usage.Usage == USAGE_X)
\r