void ht1621_UnDisSection(uint_t nSection) { uint_t nBit; nBit = (nSection & 0xC0) >> 6; nSection = invert_bits(nSection & 0x3F, 6); ht1621_WrByte(nSection, ht1621_RrByte(nSection) & BITANTI(nBit)); ht1621_Cs(1); }
uint_t ht1621_RrByte(uint_t nAdr)//读addr地址处的数据,读出的数据存至data, { uint_t nData; if (nAdr <= (HT1621_Ful_addr - 1)) { ht1621_SendBits(0x03, 3); ht1621_SendBits(nAdr, 6); nData = ht1621_ReadBits(4); } nData = invert_bits(nData, 4); ht1621_Cs(1); return nData; }
main() { printf("invert(%x, p = 3, n = 2) = %x\n", 0x6, invert_bits(0x6, 3, 2)); } // end main