Index: Utilities.c =================================================================== diff -u -rb28e0e05a9632cc46fc12378f2993a69d861a4cb -r4b3e011f99900660c9c9f23d3ea50a07cb61e64b --- Utilities.c (.../Utilities.c) (revision b28e0e05a9632cc46fc12378f2993a69d861a4cb) +++ Utilities.c (.../Utilities.c) (revision 4b3e011f99900660c9c9f23d3ea50a07cb61e64b) @@ -8,7 +8,7 @@ * @file Utilities.c * * @author (last) Sean Nash -* @date (last) 04-Sep-2020 +* @date (last) 24-Sep-2020 * * @author (original) Sean * @date (original) 17-Feb-2020 @@ -26,8 +26,12 @@ // ********** private definitions ********** -#define INITIAL_CRC16_VAL 0xFFFF ///< Seed for 16-bit CRC function -#define INITIAL_CRC08_VAL 0x00 ///< Seed for 8-bit CRC function +#define INITIAL_CRC16_VAL 0xFFFF ///< Seed for 16-bit CRC function +#define INITIAL_CRC08_VAL 0x00 ///< Seed for 8-bit CRC function + +#define ASCII_CODE_LETTER_A 0x41 ///< ASCII code in hex for letter A. +#define ASCII_CODE_NUMBER_ZERO 0x30 ///< ASCII code in hex for number zero. +#define ASCII_CODE_NUMBER_SEVEN 0x37 ///< ASCII code in hex for number seven. // ********** private data ********** @@ -371,5 +375,37 @@ data->comp = ~data->data.uInt; _enable_IRQ(); } + +/*********************************************************************//** + * @brief + * The hexStrToDec function convert hex string to decimal value. + * @details Inputs: none + * @details Outputs: none + * @param valuePtr pointer to hex string to convert + * @param size size of the hex string to convert + * @return converted value of hex string + *************************************************************************/ +U32 hexStrToDec( U08 const * const valuePtr, U08 size ) +{ + U08 ii; + U08 value; + U32 result = 0; + + for ( ii = 0; ii < size; ++ii ) + { + if ( valuePtr[ii] < ASCII_CODE_LETTER_A ) + { + value = ( valuePtr[ii] - ASCII_CODE_NUMBER_ZERO ); + result = ( result << 4 ) | value; + } + else + { + value = ( valuePtr[ii] - ASCII_CODE_NUMBER_SEVEN ); + result = ( result << 4 ) | value; + } + } + + return result; +} /**@}*/