Update DevChapter9.c - use the Endpoint_ClearStatusStage() function where possible to reduce code size and (potentially) allow for centralized status stage timeouts.
Fix Joystick device demo HID descriptors - buttons should be placed outside the Pointer collection.
This commit is contained in:
		
							parent
							
								
									0899deaae3
								
							
						
					
					
						commit
						f93f732108
					
				
					 5 changed files with 32 additions and 41 deletions
				
			
		| 
						 | 
				
			
			@ -121,7 +121,7 @@ static void USB_Device_SetAddress(void)
 | 
			
		|||
 | 
			
		||||
	Endpoint_ClearSETUP();
 | 
			
		||||
	
 | 
			
		||||
	Endpoint_ClearIN();
 | 
			
		||||
	Endpoint_ClearStatusStage();
 | 
			
		||||
	
 | 
			
		||||
	while (!(Endpoint_IsINReady()))
 | 
			
		||||
	{
 | 
			
		||||
| 
						 | 
				
			
			@ -190,7 +190,7 @@ static void USB_Device_SetConfiguration(void)
 | 
			
		|||
 | 
			
		||||
	USB_ConfigurationNumber = (uint8_t)USB_ControlRequest.wValue;
 | 
			
		||||
 | 
			
		||||
	Endpoint_ClearIN();
 | 
			
		||||
	Endpoint_ClearStatusStage();
 | 
			
		||||
 | 
			
		||||
	if (USB_ConfigurationNumber)
 | 
			
		||||
	  USB_DeviceState = DEVICE_STATE_Configured;
 | 
			
		||||
| 
						 | 
				
			
			@ -205,16 +205,9 @@ void USB_Device_GetConfiguration(void)
 | 
			
		|||
	Endpoint_ClearSETUP();
 | 
			
		||||
 | 
			
		||||
	Endpoint_Write_Byte(USB_ConfigurationNumber);
 | 
			
		||||
	
 | 
			
		||||
	Endpoint_ClearIN();
 | 
			
		||||
 | 
			
		||||
	while (!(Endpoint_IsOUTReceived()))
 | 
			
		||||
	{
 | 
			
		||||
		if (USB_DeviceState == DEVICE_STATE_Unattached)
 | 
			
		||||
		  return;	
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	Endpoint_ClearOUT();
 | 
			
		||||
	Endpoint_ClearStatusStage();
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
#if !defined(NO_INTERNAL_SERIAL) && (defined(USB_SERIES_6_AVR) || defined(USB_SERIES_7_AVR))
 | 
			
		||||
| 
						 | 
				
			
			@ -251,7 +244,9 @@ static void USB_Device_GetInternalSerialDescriptor(void)
 | 
			
		|||
	}
 | 
			
		||||
	
 | 
			
		||||
	Endpoint_ClearSETUP();
 | 
			
		||||
 | 
			
		||||
	Endpoint_Write_Control_Stream_LE(&SignatureDescriptor, sizeof(SignatureDescriptor));
 | 
			
		||||
 | 
			
		||||
	Endpoint_ClearOUT();
 | 
			
		||||
}
 | 
			
		||||
#endif
 | 
			
		||||
| 
						 | 
				
			
			@ -334,16 +329,9 @@ static void USB_Device_GetStatus(void)
 | 
			
		|||
	Endpoint_ClearSETUP();
 | 
			
		||||
 | 
			
		||||
	Endpoint_Write_Word_LE(CurrentStatus);
 | 
			
		||||
 | 
			
		||||
	Endpoint_ClearIN();
 | 
			
		||||
	
 | 
			
		||||
	while (!(Endpoint_IsOUTReceived()))
 | 
			
		||||
	{
 | 
			
		||||
		if (USB_DeviceState == DEVICE_STATE_Unattached)
 | 
			
		||||
		  return;	
 | 
			
		||||
	}
 | 
			
		||||
	
 | 
			
		||||
	Endpoint_ClearOUT();
 | 
			
		||||
	Endpoint_ClearStatusStage();
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static void USB_Device_ClearSetFeature(void)
 | 
			
		||||
| 
						 | 
				
			
			@ -391,7 +379,7 @@ static void USB_Device_ClearSetFeature(void)
 | 
			
		|||
 | 
			
		||||
	Endpoint_ClearSETUP();
 | 
			
		||||
 | 
			
		||||
	Endpoint_ClearIN();
 | 
			
		||||
	Endpoint_ClearStatusStage();
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
#endif
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue