Converted Host mode demos to schedulerless. Fixed host mode broken due to earlier Start-of-frame event experiments.

This commit is contained in:
Dean Camera 2009-06-08 07:34:16 +00:00
parent 33a0184749
commit ac70ddd0a1
39 changed files with 405 additions and 838 deletions

View file

@ -5,13 +5,14 @@
*/
========== TODO: ===========
- Fix bootloaders - make compatible with smaller USB AVRS (USB_IsConnected, RAMPZ)
- Fix bootloaders - make compatible with smaller USB AVRS (USB_IsConnected)
- Document new device class drivers
- Made new host class drivers
- Document new host class drivers
- Convert Host mode demos to class drivers
- Convert Host mode demos to schedulerless
- Add standardized descriptor names to class driver structures, controlled by USE_NONSTANDARD_DESCRIPTOR_NAMES
- Device demos error if endpoint config fail
============================
/** \page Page_ChangeLog Project Changelog
@ -20,6 +21,8 @@
*
* - Removed psuedo-scheduler, dynamic memory block allocator from the library (no longer needed and not used respectively)
* - Added new class drivers and matching demos to the library for rapid application development
* - Added incomplete device and host mode demos for later enhancement
* - Changed bootloaders to use FLASHEND rather than the existence of RAMPZ to determine if far FLASH pointers are needed
*
*
* \section Sec_ChangeLog090605 Version 090605

View file

@ -98,9 +98,9 @@ uint8_t Endpoint_WaitUntilReady(void)
else if (Endpoint_IsStalled())
return ENDPOINT_READYWAIT_EndpointStalled;
if (FrameElapsed)
if (USB_INT_HasOccurred(USB_INT_HSOFI))
{
FrameElapsed = false;
USB_INT_Clear(USB_INT_HSOFI);
if (!(TimeoutMSRem--))
return ENDPOINT_READYWAIT_Timeout;

View file

@ -214,9 +214,9 @@ uint8_t USB_Host_WaitMS(uint8_t MS)
while (MS)
{
if (FrameElapsed)
if (USB_INT_HasOccurred(USB_INT_HSOFI))
{
FrameElapsed = false;
USB_INT_Clear(USB_INT_HSOFI);
MS--;
}
@ -259,9 +259,9 @@ static void USB_Host_ResetDevice(void)
USB_Host_ResetBus();
while (!(USB_Host_IsBusResetComplete()));
USB_Host_ResumeBus();
FrameElapsed = false;
USB_Host_ResumeBus();
USB_INT_Clear(USB_INT_HSOFI);
for (uint8_t MSRem = 10; MSRem != 0; MSRem--)
{
@ -270,10 +270,9 @@ static void USB_Host_ResetDevice(void)
looked for - if it is found within 10ms, the device is still
present. */
if (FrameElapsed)
if (USB_INT_HasOccurred(USB_INT_HSOFI))
{
FrameElapsed = false;
USB_INT_Clear(USB_INT_HSOFI);
USB_INT_Clear(USB_INT_DDISCI);
break;
}

View file

@ -38,8 +38,6 @@ volatile uint8_t USB_CurrentMode = USB_MODE_NONE;
volatile uint8_t USB_Options;
#endif
volatile bool FrameElapsed;
void USB_Init(
#if defined(USB_CAN_BE_BOTH)
const uint8_t Mode
@ -152,8 +150,6 @@ void USB_ResetInterface(void)
USB_INT_DisableAllInterrupts();
USB_INT_ClearAllInterrupts();
FrameElapsed = false;
USB_IsConnected = false;
#if defined(USB_CAN_BE_HOST)

View file

@ -350,9 +350,6 @@
return USB_MODE_HOST;
}
#endif
/* External Variables: */
extern volatile bool FrameElapsed;
#endif

View file

@ -94,9 +94,9 @@ uint8_t Pipe_WaitUntilReady(void)
else if (!(USB_IsConnected))
return PIPE_READYWAIT_DeviceDisconnected;
if (FrameElapsed)
if (USB_INT_HasOccurred(USB_INT_HSOFI))
{
FrameElapsed = false;
USB_INT_Clear(USB_INT_HSOFI);
if (!(TimeoutMSRem--))
return PIPE_READYWAIT_Timeout;