/* Write hexadecimal number on numeric part on Segment LCD display.  */
void SegmentLCD_UnsignedHex(uint16_t value)
/* Write hexadecimal number on numeric part on Segment LCD display.  */
void SegmentLCD_UnsignedHex(uint16_t value)
{
  int      num, i, com, bit, digit;
  uint16_t bitpattern;
  if (value >= 0xffff)
  {
    value = 0xffff;
  }
  LCD_SyncBusyDelay(0xFFFFFFFF);
  LCD_FreezeEnable(true);
  SegmentLCD_NumberOff();
  for (digit = 0; digit < 4; digit++)
  {
    num        = (value >> (4 * digit)) & 0x0f;
    bitpattern = EFM_Numbers[num];
    for (i = 0; i < 7; i++)
    {
      bit = EFM_Display.Number[digit].bit[i];
      com = EFM_Display.Number[digit].com[i];
      if (bitpattern & (1 << i))
      {
        LCD_SegmentSet(com, bit, true);
      }
    }
  }
  LCD_FreezeEnable(false);
}