//-------------------------------------------------------// // 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