📄 lib.lst
字号:
C51 COMPILER V7.50 LIB 12/14/2005 10:05:34 PAGE 1
C51 COMPILER V7.50, COMPILATION OF MODULE LIB
OBJECT MODULE PLACED IN .\OBJ\lib.obj
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE lib.c LARGE OPTIMIZE(9,SIZE) BROWSE PRINT(.\LST\lib.lst) OBJECT(.\OBJ\lib.o
-bj)
line level source
1 /*
2 ********************************************************************************
3 *
4 * (c) Copyright 2002, Vineyard Technologies, Inc.
5 *
6 * Filename : lib.c
7 * Programmer(s): Steve KyeongHyeon Lee
8 * Created : 2003/05/07
9 * Modified :
10 *
11 * Description : Small library functions being used for every major functions
12 ********************************************************************************
13 */
14 #include "types.h"
15
16
17 #include <stdio.h>
18 #include <absacc.h>
19 #include "lib.h"
20 #include "gosd.h"
21 #include "gio.h"
22
23 //=============================================================================
24 // Change hexa ascii string (just 2 ascii characters) into number
25 //=============================================================================
26 #ifdef CONIF
u8 hatoc(u8 *str)
{
u8 num=0, i;
for(i=0; i<2; i++) {
if ( str[i]>='0' && str[i]<='9' ) num = (num<<4) + str[i] - '0';
else if( str[i]>='A' && str[i]<='F' ) num = (num<<4) + str[i] - 'A' + 10;
else if( str[i]>='a' && str[i]<='f' ) num = (num<<4) + str[i] - 'a' + 10;
}
return num;
}
#endif //CONIF
39 //=============================================================================
40 // Change unsigned character into 2 byte hex string
41 //=============================================================================
42 void hctoa(u8 ch, u8* hex)
43 {
44 1 u8 i,c;
45 1
46 1 for(i=0;i<2;i++)
47 1 {
48 2 if (i == 0) c = ch >> 4;
49 2 else c = ch;
50 2 c &= 0x0f;
51 2 if (c >= 0 && c <= 9 ) hex[i] = '0' + c;
52 2 else hex[i] = 'A' + c - 10;
53 2 }
54 1 }
C51 COMPILER V7.50 LIB 12/14/2005 10:05:34 PAGE 2
55 /*
56 //=============================================================================
57 // Change unsigned long 32bit into 8 byte hex string
58 //=============================================================================
59 void u32toa(u32 ch, u8* hex)
60 {
61 u8 i,c;
62
63 for(i=0;i<8;i++){
64 c = ch>>(4*(7-i));
65 c &= 0x0f;
66 if( c>=0 && c<=9 ) hex[i] = '0'+c;
67 else hex[i] = 'A'+c-10;
68 }
69 }
70 */
71 //=============================================================================
72 // Change ascii string into number
73 //=============================================================================
74 #ifdef NOT_JUNK
u16 a2i(u8 *str, u8 size)
{
u8 num=0, i;
for(i=0; i<size; i++) {
if( str[i]>='0' && str[i]<='9' ) num = (num*10) + str[i] - '0';
}
return num;
}
#endif //NOT_JUNK
85 /*
86 //=============================================================================
87 // Change unsigned character into 3 byte decimal string
88 //=============================================================================
89 void ctoa(u8 ch, u8* decimal)
90 {
91 decimal[0] = '0' + ch/100;
92 ch = ch%100;
93 decimal[1] = '0' + ch/10;
94 ch = ch%10;
95 decimal[2] = '0' + ch;
96 }
97
98
99 //=============================================================================
100 // Change unsigned character into 2 byte decimal string
101 //=============================================================================
102 void ctoa_s(u8 ch, u8* decimal)
103 {
104 decimal[0] = '0' + ch/10;
105 ch = ch%10;
106 decimal[1] = '0' + ch;
107 }
108 */
109 //=============================================================================
110 // Change unsigned character into n byte decimal string
111 //=============================================================================
112 void dtoa(u16 val, u8* decimal_str, u8 len)
113 {
114 1
115 1 u16 i,d=1;
116 1 for(i=0;i<(len-1);i++) d = d * 10;
C51 COMPILER V7.50 LIB 12/14/2005 10:05:34 PAGE 3
117 1 for(i=0;i<len;i++)
118 1 {
119 2 decimal_str[i] = '0' + val/d;
120 2 val = val%d;
121 2 d = d / 10;
122 2 }
123 1 }
124 //=============================================================================
125 // Change hexa ascii string (just 4 ascii characters) into number
126 //=============================================================================
127 #ifdef CONIF
u16 hatoi(u8 *str)
{
u16 num=0, i;
for(i=0; i<4; i++) {
if ( str[i]>='0' && str[i]<='9' ) num = (num<<4) + str[i] - '0';
else if( str[i]>='A' && str[i]<='F' ) num = (num<<4) + str[i] - 'A' + 10;
else if( str[i]>='a' && str[i]<='f' ) num = (num<<4) + str[i] - 'a' + 10;
}
return num;
}
#endif
140 //=============================================================================
141 //
142 //=============================================================================
143 void mem_set(u8* ptr, u8 val, u16 len)
144 {
145 1 u16 i;
146 1 for(i=0;i<len;i++)
147 1 *ptr++ = val;
148 1 }
149 //=============================================================================
150 // Change hexa ascii string (just 8 ascii characters) into number
151 //=============================================================================
152 #if defined(DEBUG_HDD_DUMP)
u32 hatol(u8 *str)
{
xdata u32 num=0, i;
for(i=0; i<8; i++) {
if ( str[i]>='0' && str[i]<='9' ) num = (num<<4) + str[i] - '0';
else if( str[i]>='A' && str[i]<='F' ) num = (num<<4) + str[i] - 'A' + 10;
else if( str[i]>='a' && str[i]<='f' ) num = (num<<4) + str[i] - 'a' + 10;
}
return num;
}
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -