BCD / Decimal 변환 해주는 함수
uint8_t B2D(uint8_t byte)
{
uint8_t low, high;
low = byte & 0x0F;
high = ((byte >> 4) & 0x0F) * 10;
return high + low;
}
uint8_t D2B(uint8_t byte)
{
return ((byte/10)<<4) + (byte%10);
}
uint16_t WordD2B(uint16_t word)
{
uint16_t len, i;
uint16_t divisor=1;
uint16_t pstNum;
uint16_t u16Ret = 0;
len = numlen(word); //입력받은 10진수의 자리수를 len에 넣는다.
for(i=1 ; i<len ; i++)
{
//divisor에 자리수만큼 10을 곱한수를 넣는다.(입력받은 10진수를 한자리씩 떼어낼 때 사용)
divisor*=10;
}
for(i=len ; i>0 ; i--)
{
//자리수만큼 반복
pstNum = word/divisor; //제일 큰자리의숫자부터 하나씩 끊은 정수를 pstNum에 입력
u16Ret |= pstNum << (4*(i-1));
word = word-pstNum*divisor; //이미 출력한 자리의 숫자를 빼서 없앤다.
divisor /= 10; //자리수가 하나 줄었으므로 10으로 한번 나눈다.
}
return u16Ret;
}