Commit 8f3bee7d authored by Dean Camera's avatar Dean Camera
Browse files

Better algorithm to extract and convert the internal device serial number into...

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.
parent 5517f96e
......@@ -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: */
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment