Better algorithm to extract and convert the internal device serial number into a string descriptor (if present).
Fix incorrect warning text when an unsuitable F_CLOCK value is given.
This commit is contained in:
		
							parent
							
								
									5517f96e86
								
							
						
					
					
						commit
						8f3bee7d86
					
				
					 2 changed files with 6 additions and 6 deletions
				
			
		| 
						 | 
				
			
			@ -211,8 +211,8 @@ static void USB_Device_GetConfiguration(void)
 | 
			
		|||
#if !defined(NO_INTERNAL_SERIAL) && (USE_INTERNAL_SERIAL != NO_DESCRIPTOR)
 | 
			
		||||
static char USB_Device_NibbleToASCII(uint8_t Nibble)
 | 
			
		||||
{
 | 
			
		||||
	Nibble = ((Nibble & 0x0F) + '0');
 | 
			
		||||
	return (Nibble > '9') ? (Nibble + ('A' - '9' - 1)) : Nibble;
 | 
			
		||||
	Nibble &= 0x0F;
 | 
			
		||||
	return (Nibble >= 10) ? (('A' - 10) + Nibble) : ('0' + Nibble);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static void USB_Device_GetInternalSerialDescriptor(void)
 | 
			
		||||
| 
						 | 
				
			
			@ -220,16 +220,16 @@ static void USB_Device_GetInternalSerialDescriptor(void)
 | 
			
		|||
	struct
 | 
			
		||||
	{
 | 
			
		||||
		USB_Descriptor_Header_t Header;
 | 
			
		||||
		int16_t                 UnicodeString[20];
 | 
			
		||||
		wchar_t                 UnicodeString[20];
 | 
			
		||||
	} SignatureDescriptor;
 | 
			
		||||
 | 
			
		||||
	SignatureDescriptor.Header.Type = DTYPE_String;
 | 
			
		||||
	SignatureDescriptor.Header.Size = sizeof(SignatureDescriptor);
 | 
			
		||||
 | 
			
		||||
	uint8_t SigReadAddress = 0x0E;
 | 
			
		||||
 | 
			
		||||
	ATOMIC_BLOCK(ATOMIC_RESTORESTATE)
 | 
			
		||||
	{
 | 
			
		||||
		uint8_t SigReadAddress = 0x0E;
 | 
			
		||||
 | 
			
		||||
		for (uint8_t SerialCharNum = 0; SerialCharNum < 20; SerialCharNum++)
 | 
			
		||||
		{
 | 
			
		||||
			uint8_t SerialByte = boot_signature_byte_get(SigReadAddress);
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -118,7 +118,7 @@
 | 
			
		|||
		#endif
 | 
			
		||||
 | 
			
		||||
		#if !defined(USB_PLL_PSC)
 | 
			
		||||
			#error No PLL prescale value available for chosen F_CPU value and AVR model.
 | 
			
		||||
			#error No PLL prescale value available for chosen F_CLOCK value and AVR model.
 | 
			
		||||
		#endif
 | 
			
		||||
 | 
			
		||||
	/* Public Interface - May be used in end-application: */
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue