Попробуйте потестировать в отладчике мою функцию unsigned int hex2bcd (unsigned char hex) { unsigned char i; unsigned int bcd=0; for(i=0;i<8;i++) { if ((bcd & 0x0F) >= 0x05) bcd += 0x03; if ((bcd & 0xFF) >= 0x50) bcd += 0x30; bcd <<= 1; if ((hex & 0x80)==0x80) bcd |= 0x01; hex <<= 1; } return bcd; } Писано это около года назад, не помню где то в сети отрыл алгоритм быстрого преобразования hex to bcd, как раз с целью вывода на жки. Сюдя по тому что взято из рабочей проги, должно работать.
|