//******************************************************************** // Ver 1.0 // 2020.12.24 1、新建文件 //******************************************************************** #include "config.h" //十进制数转ASCII码 void STR_Dec2Ascii(INT32S Value, INT8U *ptr, INT8U Len, INT8U zFlag) { INT8U i, nFlag = 0; i = Len; if(Value < 0) { Value = 0 - Value; nFlag = 1; } while(i--) { ptr[i] = '0' + Value % 10; Value /= 10; } for(i = 0; i < (Len - 1); i++) { if(ptr[i] != '0') { zFlag = 1; if(nFlag != 0) { ptr[i - 1] = '-'; } } if(zFlag == 0) ptr[i] = ' '; } } //十六进制数转ASCII码 const INT8U ASCII_Tab[] = {"0123456789ABCDEF"}; void STR_Hex2Ascii(INT32S Value, INT8U *ptr, INT8U Len) { INT8U i; i = Len + 2; while(i--) { ptr[i] = ASCII_Tab[Value & 0x000f]; Value >>= 4; } ptr[0] = '0'; ptr[1] = 'x'; } //字符串比较 INT8U STR_Compare(char *ptr1, char *ptr2) { do { if (*ptr2 == 0) { return (0); } if (*ptr1++ != *ptr2++) { return (1); } } while (1); } //无符号数字加减 INT32U STR_NumAddOrSub(INT32U Value, INT32U Max, INT32U Min, INT8U AddOrSub, INT8U Step, INT8U Loop) { if(AddOrSub == NUM_ADD) { Value += Step; if(Value > Max) { if (Loop == NUM_LOOP) //数据加到最大值,且循环操作 { Value = Min; } else { Value = Max; } } } else if(AddOrSub == NUM_SUB) { Value -= Step; if((Value > Max) || (Value < Min)) { if (Loop == NUM_LOOP) //数据减到最小值,且循环操作 { Value = Max; } else { Value = Min; } } } return(Value); }