📄 gui_adddec.lst
字号:
C51 COMPILER V8.05a GUI_ADDDEC 04/11/2008 14:18:26 PAGE 1
C51 COMPILER V8.05a, COMPILATION OF MODULE GUI_ADDDEC
OBJECT MODULE PLACED IN GUI_AddDec.obj
COMPILER INVOKED BY: D:\Program Files\keil\C51\BIN\C51.EXE gui\Core\GUI_AddDec.c LARGE BROWSE MDU_F120 DEBUG OBJECTEXTEN
-D PRINT(.\GUI_AddDec.lst) OBJECT(GUI_AddDec.obj)
line level source
1 /*
2 *********************************************************************************************************
3 * uC/GUI
4 * Universal graphic software for embedded applications
5 *
6 * (c) Copyright 2002, Micrium Inc., Weston, FL
7 * (c) Copyright 2002, SEGGER Microcontroller Systeme GmbH
8 *
9 * 礐/GUI is protected by international copyright laws. Knowledge of the
10 * source code may not be used to write a similar product. This file may
11 * only be used in accordance with a license and should not be redistributed
12 * in any way. We appreciate your understanding and fairness.
13 *
14 ----------------------------------------------------------------------
15 File : GUIVAL.C
16 Purpose : Routines to display values as dec, binary or hex
17 ----------------------------------------------------------------------
18 */
19
20 #include "gui\Core\GUI_Protected.h"
21 #include "gui\Core\GUIDebug.h"
22 #include "string.h"
23
24
25 /*********************************************************************
26 *
27 * Public data
28 *
29 **********************************************************************
30 */
31
32 const U32 GUI_Pow10[10] = {
33 1 , 10, 100, 1000, 10000,
34 100000, 1000000, 10000000, 100000000, 1000000000
35 };
36
37 /*********************************************************************
38 *
39 * Static routines
40 *
41 **********************************************************************
42 */
43
44 static int _Check_NegLong(I32 *pv, char**ps) {
45 1 if (*pv<0) {
46 2 *(*ps)++ = '-';
47 2 *pv = -*pv;
48 2 return 1;
49 2 }
50 1 return 0;
51 1 }
52
53 /*********************************************************************
54 *
C51 COMPILER V8.05a GUI_ADDDEC 04/11/2008 14:18:26 PAGE 2
55 * Module internal routines
56 *
57 **********************************************************************
58 */
59
60 int GUI_Long2Len(I32 vSign) {
61 1 int Len = 1;
62 1 I32 v = (vSign>0) ? vSign : -vSign;
63 1 while (( ((U32)v) >= GUI_Pow10[Len]) && (Len <9))
64 1 Len++;
65 1 if (vSign<0)
66 1 Len++;
67 1 return Len;
68 1 }
69
70 long GUI_AddSign(long v, char**ps) {
71 1 char c;
72 1 if (v<0) {
73 2 c = '-';
74 2 v = -v;
75 2 } else {
76 2 c = '+';
77 2 }
78 1 *(*ps)++ = c;
79 1 **ps = '\0';
80 1 return v;
81 1 }
82
83 /*********************************************************************
84 *
85 * Public routines
86 *
87 **********************************************************************
88 */
89
90 /*********************************************************************
91 *
92 * Decimal GUI_Add... routines
93 */
94
95
96 void GUI_AddDecShift(I32 v, U8 Len, U8 Shift, char**ps) {
97 1 char c;
98 1 long d;
99 1 #ifndef _CM16C
100 1 Len -= _Check_NegLong(&v, ps); /* TASKING: Tool internal error S003: asertion failed - please report *
-/
101 1 #else
if (v<0) {
*(*ps)++ = '-';
v = -v;
}
#endif
107 1 if (Shift) Len--;
108 1 #if GUI_DEBUG_LEVEL >1
if (Len>9) {
Len=9;
GUI_DEBUG_ERROROUT("Can not display more than 9 dec. digits");
}
#endif
114 1 if ((U32)v >= GUI_Pow10[Len])
115 1 v = GUI_Pow10[Len]-1;
C51 COMPILER V8.05a GUI_ADDDEC 04/11/2008 14:18:26 PAGE 3
116 1 while (Len) {
117 2 if (Len--==Shift)
118 2 *(*ps)++ = GUI_DecChar;
119 2 d = GUI_Pow10[Len];
120 2 c = (char) (v/d);
121 2 v -= c*d;
122 2 *(*ps)++ = c+'0';
123 2 }
124 1 **ps = 0;
125 1 }
126
127 void GUI_AddDec(I32 v, U8 Len, char**ps) {
128 1 GUI_AddDecShift(v, Len, 0, ps);
129 1 }
130
131 void GUI_AddDecMin(I32 v, char**ps) {
132 1 U8 Len = GUI_Long2Len(v);
133 1 GUI_AddDecShift(v, Len, 0, ps);
134 1 }
135
136
137
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 941 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = 40 53
PDATA SIZE = ---- ----
DATA SIZE = ---- ----
IDATA SIZE = ---- ----
BIT SIZE = ---- ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -