//******************************************************************** // Ver 1.0 // 2020.03.05 1、新建文件。 //******************************************************************** #include "config.h" const char HEX2ASCII_Tab[] = {"0123456789abcdef"}; //const char MONTH_Tab[] = {"Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"}; #define MOTH_H ((__DATE__[0] == 'O') ? '1' : \ (__DATE__[0] == 'N') ? '1' : \ (__DATE__[0] == 'D') ? '1' : '0') #define MOTH_L ((__DATE__[2] == 'n') ? ((__DATE__[1] == 'a') ? '1' : '6') : \ (__DATE__[2] == 'b') ? '2' : \ (__DATE__[2] == 'r') ? ((__DATE__[1] == 'a') ? '3' : '4') : \ (__DATE__[2] == 'y') ? '5' : \ (__DATE__[2] == 'l') ? '7' : \ (__DATE__[2] == 'g') ? '8' : \ (__DATE__[2] == 'p') ? '9' : \ (__DATE__[2] == 't') ? '0' : \ (__DATE__[2] == 'v') ? '1' : '2') const char DataStr[] = { __DATE__[7], //年,字符串 __DATE__[8], __DATE__[9], __DATE__[10], MOTH_H, //月,字符串 MOTH_L, ((__DATE__[4] == 0x20) ? ('0') : (__DATE__[4])), //日,字符串 __DATE__[5], (unsigned char)(((__DATE__[7] - '0') * 1000 + (__DATE__[8] - '0') * 100 + (__DATE__[9] - '0') * 10 + (__DATE__[10] - '0')) >> 8), (unsigned char)(((__DATE__[7] - '0') * 1000 + (__DATE__[8] - '0') * 100 + (__DATE__[9] - '0') * 10 + (__DATE__[10] - '0')) >> 0), (unsigned char)((MOTH_H - '0') * 10 + (MOTH_L - '0')), (unsigned char)((__DATE__[4] == 0x20) ? (__DATE__[5] - '0') : (__DATE__[4] - '0') * 10 + (__DATE__[5] - '0')), }; const char TimeStr[] = { __TIME__[0], __TIME__[1], __TIME__[3], __TIME__[4], __TIME__[6], __TIME__[7], (unsigned char)((__DATE__[0] - '0') * 10 + (__DATE__[1] - '0')), (unsigned char)((__DATE__[3] - '0') * 10 + (__DATE__[4] - '0')), (unsigned char)((__DATE__[6] - '0') * 10 + (__DATE__[7] - '0')), }; //填充RAM数据 void MEM_Fill(INT8U *ptr, INT8U Value, INT16U Len) { while (Len--) { ptr[Len] = Value; } } void MEM_FillAdd(INT8U *ptr, INT8U Value, INT16U Len) { while (Len--) { ptr[Len] = Value++; } } //复制RAM数据 void MEM_Copy(INT8U *ptrs, INT8U *ptrd, INT16U Len) { //ATOMIC_Start(); while (Len--) { ptrd[Len] = ptrs[Len]; } //ATOMIC_Stop(); } //内存数据比较 INT8U MEM_Compare(INT8U *ptrs, INT8U *ptrd, INT16U Len) { while(Len--) { if(ptrd[Len] != ptrs[Len]) { return(1); } } return(0); } //大小端数据交换 INT16U MEM_HalfWordSwap(INT16U Value) { Value = ((Value >> 8) & 0x00ff) | ((Value << 8) & 0xff00); return(Value); } INT32U MEM_WordSwap(INT32U Value) { Value = ((Value >> 16) & 0x0000ffff) | ((Value << 16) & 0xffff0000); Value = ((Value >> 8) & 0x00ff00ff) | ((Value << 8) & 0xff00ff00); return(Value); }