
File name
Commit message
Commit date
File name
Commit message
Commit date
File name
Commit message
Commit date
File name
Commit message
Commit date
//-------------------------------------------------------//
// Project Code : ALE300K03-21-LGE-GEN2.0-BE-CPU1
// File Name : Util.cpp
// Created on : 2022. 11. 5.
// Description :
// Author : KimJeongWoo
// Last modified Date :
//-------------------------------------------------------//
#include "CodeLibMath.h"
#include "Util.h"
#define BUILD_MONTH_IS_JAN (__DATE__[0] == 'J' && __DATE__[1] == 'a' && __DATE__[2] == 'n')
#define BUILD_MONTH_IS_FEB (__DATE__[0] == 'F')
#define BUILD_MONTH_IS_MAR (__DATE__[0] == 'M' && __DATE__[1] == 'a' && __DATE__[2] == 'r')
#define BUILD_MONTH_IS_APR (__DATE__[0] == 'A' && __DATE__[1] == 'p')
#define BUILD_MONTH_IS_MAY (__DATE__[0] == 'M' && __DATE__[1] == 'a' && __DATE__[2] == 'y')
#define BUILD_MONTH_IS_JUN (__DATE__[0] == 'J' && __DATE__[1] == 'u' && __DATE__[2] == 'n')
#define BUILD_MONTH_IS_JUL (__DATE__[0] == 'J' && __DATE__[1] == 'u' && __DATE__[2] == 'l')
#define BUILD_MONTH_IS_AUG (__DATE__[0] == 'A' && __DATE__[1] == 'u')
#define BUILD_MONTH_IS_SEP (__DATE__[0] == 'S')
#define BUILD_MONTH_IS_OCT (__DATE__[0] == 'O')
#define BUILD_MONTH_IS_NOV (__DATE__[0] == 'N')
#define BUILD_MONTH_IS_DEC (__DATE__[0] == 'D')
#define BUILD_DATE_CH0 (__DATE__[ 4] - '0')
#define BUILD_DATE_CH1 (__DATE__[ 5] - '0')
#define BUILD_YEAR_CH0 (__DATE__[ 7] - '0')
#define BUILD_YEAR_CH1 (__DATE__[ 8] - '0')
#define BUILD_YEAR_CH2 (__DATE__[ 9] - '0')
#define BUILD_YEAR_CH3 (__DATE__[10] - '0')
#define BUILD_HOUR (((__TIME__[0] - '0') * 10 + __TIME__[1] - '0'))
#define BUILD_MIN (((__TIME__[3] - '0') * 10 + __TIME__[4] - '0'))
#define BUILD_SEC (((__TIME__[6] - '0') * 10 + __TIME__[7] - '0'))
struct sCompileTime
{
Uint32 Date;
Uint32 Time;
};
volatile struct sCompileTime Compiletime;
void getCompileTime()
{
unsigned long TempYear = 0;
unsigned long TempMonth = 0;
unsigned long TempDate = 0;
unsigned long TempHour = 0;
unsigned long TempMin = 0;
unsigned long TempSec = 0;
unsigned long TempCal = 0;
TempYear = (Uint32) (BUILD_YEAR_CH0 * 1000 + BUILD_YEAR_CH1 * 100 + BUILD_YEAR_CH2 * 10 + BUILD_YEAR_CH3) * 10000;
//�� ���� --> ���ڷ� ��ȯ easy���� ���ڿ��� ���� �����Ƿ�...
if (BUILD_MONTH_IS_JAN) TempMonth = (Uint32) (1 * 100);
else if (BUILD_MONTH_IS_FEB) TempMonth = (Uint32) (2 * 100);
else if (BUILD_MONTH_IS_MAR) TempMonth = (Uint32) (3 * 100);
else if (BUILD_MONTH_IS_APR) TempMonth = (Uint32) (4 * 100);
else if (BUILD_MONTH_IS_MAY) TempMonth = (Uint32) (5 * 100);
else if (BUILD_MONTH_IS_JUN) TempMonth = (Uint32) (6 * 100);
else if (BUILD_MONTH_IS_JUL) TempMonth = (Uint32) (7 * 100);
else if (BUILD_MONTH_IS_AUG) TempMonth = (Uint32) (8 * 100);
else if (BUILD_MONTH_IS_SEP) TempMonth = (Uint32) (9 * 100);
else if (BUILD_MONTH_IS_OCT) TempMonth = (Uint32) (10 * 100);
else if (BUILD_MONTH_IS_NOV) TempMonth = (Uint32) (11 * 100);
else if (BUILD_MONTH_IS_DEC) TempMonth = (Uint32) (12 * 100);
TempCal = BUILD_DATE_CH0;
if (( BUILD_DATE_CH0 < 0) || ( BUILD_DATE_CH0 > 9)) TempCal = 0;
TempDate = (Uint32) ((TempCal * 10) + BUILD_DATE_CH1);
TempHour = (Uint32) BUILD_HOUR * 10000; //Unit32 ij���� ���� ���� 16bit ������ ����ؼ� ���ڸ� �߸�
TempMin = (Uint32) BUILD_MIN * 100;
TempSec = (Uint32) BUILD_SEC;
Compiletime.Date = (TempYear + TempMonth + TempDate);
Compiletime.Time = (TempHour + TempMin + TempSec);
}
//BCD �ڵ带 Decimal ���·� ���� ex) 0x45 -> 45��
Uint16 BcdToDec(unsigned int x)
{
return (x - 6 * (x >> 4));
}
int compare(const void *a, const void *b)
{
return *(int *) a - *(int *) b; //ũ�� ���, ������ ���� ����
}
float fMax2(float in1, float in2)
{
float max;
if (in1 > in2) max = in1;
else max = in2;
return max;
} // return maximum value of two
float fMin2(float in1, float in2)
{
float min;
if (in1 < in2) min = in1;
else min = in2;
return min;
} // return minimum value of two
float fMax3(float in1, float in2, float in3)
{
float max;
if (in1 > in2) max = in1;
else max = in2;
if (in3 > max) max = in3;
return max;
} // return maximum value of two
float fMid3(float in1, float in2, float in3)
{
float mid;
if (in1 < in2)
{
if (in2 < in3) mid = in2;
else if (in1 < in3) mid = in3;
else mid = in1;
}
else if (in1 > in2)
{
if (in1 < in3) mid = in1;
else if (in2 < in3) mid = in3;
else mid = in2;
}
return mid;
}
float fMin3(float in1, float in2, float in3)
{
float min;
if (in1 < in2) min = in1;
else min = in2;
if (in3 < min) min = in3;
return min;
} // return minimum value of two