94 lines
2.3 KiB
C
94 lines
2.3 KiB
C
|
|
#include "../main/SystemInclude.h"
|
|||
|
|
|
|||
|
|
TypeSecondary Secondary;
|
|||
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>BCD<43><44><EFBFBD>ķ<EFBFBD><C4B7><EFBFBD><EFBFBD>ǽ<EFBFBD><C7BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>8<EFBFBD><38>,ÿ<><C3BF><EFBFBD><EFBFBD>λ<EFBFBD><EFBFBD><F3B6BCBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λLSD+3<>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD>7,<2C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>3,<2C><><EFBFBD><EFBFBD>,<2C><>4λMSD<53><44>ͬ<EFBFBD><CDAC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"
|
|||
|
|
//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<covertLen; I++)
|
|||
|
|
{
|
|||
|
|
covertBuf = convertHex / (u32)10;
|
|||
|
|
*resultPointer = (u8)(convertHex-covertBuf*10);
|
|||
|
|
convertHex = covertBuf;
|
|||
|
|
|
|||
|
|
resultPointer += adrBuf;
|
|||
|
|
//if(order == LOW_FIRST) resultPointer++;
|
|||
|
|
//else resultPointer--;
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/******************************************************************************/
|
|||
|
|
s32 SecondaryCompute(void)
|
|||
|
|
{
|
|||
|
|
f32 fTemp;
|
|||
|
|
|
|||
|
|
tmpSLA = (s32)Secondary.ValueH;
|
|||
|
|
tmpSLA -= (s32)Secondary.ValueL;
|
|||
|
|
fTemp = (float)tmpSLA;
|
|||
|
|
|
|||
|
|
tmpSLB = Secondary.NodeX;
|
|||
|
|
tmpSLB -= Secondary.NodeL;
|
|||
|
|
//tmpSLA *= tmpSLB;
|
|||
|
|
fTemp *= (float)tmpSLB;
|
|||
|
|
|
|||
|
|
tmpSLB = Secondary.NodeH;
|
|||
|
|
tmpSLB -= Secondary.NodeL;
|
|||
|
|
//tmpSLA /= tmpSLB;
|
|||
|
|
if(tmpSLB != 0) fTemp /= (float)tmpSLB;
|
|||
|
|
else return 0;
|
|||
|
|
|
|||
|
|
tmpSLA = (s32)fTemp;
|
|||
|
|
tmpSLA += (s32)Secondary.ValueL;
|
|||
|
|
|
|||
|
|
//if(tmpSLA < 0) return 0;
|
|||
|
|
//else return (u16)tmpSLA;
|
|||
|
|
return tmpSLA;
|
|||
|
|
}
|