ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Пятница
22 ноября
330978
xor (25.05.2012 19:40, просмотров: 1721)
hex2bcd, 4.20A vc6.5 работает как надо в IAR при переходе с 3 на 4, с 7 на 8 в 3 разряде в старшем накидывается по единице. как исправить? unsigned long hex2bcd (unsigned short hex){ unsigned char i; unsigned long bcd=0; for(i=0;i<16;i++) { if ((bcd & 0x000F) >= 0x0005) bcd += 0x0003; if ((bcd & 0x00F0) >= 0x0050) bcd += 0x0030; if ((bcd & 0x0F00) >= 0x0500) bcd += 0x0300; if ((bcd & 0xF000) >= 0x5000) bcd += 0x3000; bcd <<= 1; if ((hex & 0x8000)==0x8000) bcd |= 0x0001; hex <<= 1; } return bcd; }