#include "../main/SystemInclude.h" TypeSecondary Secondary; //二进制数调整BCD码的方法是将二进制码左移8次,每次移位后都检查低四位LSD+3是否大于7,如是则加3,否则不加,高4位MSD作同样处理" //void ConvertWordHEXToBCD(u16 convertHex) //{ //u32 convertHex; // for(I=0; I<16; I++) // { // // // } // // //} /******************************************************************************/ u8 BCDToHEX(u8 BCDBuffer) { return (((BCDBuffer & 0xf0)>>4)*10 + (BCDBuffer & 0x0f)); } /******************************************************************************/ u16 HEXToBCD(u8 HEXBuffer) { u16 tempBCD; tempBCD = HEXBuffer/100; HEXBuffer -= tempBCD * 100; tempBCD <<= 4; tempBCD |= HEXBuffer / 10; HEXBuffer -= (tempBCD & 0x000f) * 10; tempBCD <<= 4; tempBCD |= HEXBuffer; return tempBCD; //return ((((u16)HEXBuffer / 100) << 8) | ((HEXBuffer / 10) << 4) | (HEXBuffer % 10)); } /******************************************************************************/ void ConvertHEXToBCDArray(u32 convertHex, u8 *resultPointer, u16 covertLen, u16 order) { u16 I; s16 adrBuf; u32 covertBuf; if(order == LOW_FIRST) adrBuf = 1; else { resultPointer += covertLen-1; adrBuf = -1; } for(I=0; I= subtractor) { if(subResult < 32768) subResult += 32768; else subResult = 65535; } else { if(subResult < 32768) subResult = 0; else subResult -= 32768; } return subResult; }