пятница, 12 августа 2011 г.

Перевод BCD time в decimal.

Недавно по работе необходимо было перевести BCD decoded time в decimal. Данный сниппет как раз этому и посвящен, и в принципе, может быть полезен только начинающим, так как это по сути перевод из HEX в DEC.
Итак известно, что 2009-Nov-10 17:23:21.33 кодируется, как 09h, 11h, 10h, 17h, 23h, 21h, 33h. Ниже представлена небольшая C/C++ функция, которая как раз и переводит число из BCD в целочисленный формат(BCD). Скорее всего есть что-то библиотечное для этого, но на момент написания, в компиляторе своего микроконтроллера я ничего не нашел, или плохо искал.
/*!@brief Function convert BCD time value to dec.
 * @param cBCDNum BCD time value to convert.
 * @return The number in the decimal format.
 */
inline char cBCDToDec( const char cBCDNum ) {		
	return ( ( ( cBCDNum/ 16) * 10 ) + ( cBCDNum % 16 ) );
}

Комментариев нет:

Отправить комментарий