📄 common.lst
字号:
C51 COMPILER V8.01 COMMON 04/17/2008 09:54:24 PAGE 1
C51 COMPILER V8.01, COMPILATION OF MODULE COMMON
OBJECT MODULE PLACED IN .\Debug\common.obj
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE common\common.c LARGE OPTIMIZE(9,SIZE) REGFILE(.\Debug\VA4010_SDK_V2.ORC) B
-ROWSE NOINTPROMOTE INCDIR(.\common;.\e2prom;.\file;.\fmtx;.\ir;.\keyboard;.\lcm;.\led;.\main;.\matrixkey;.\mp3ctrl;.\sd;
-.\usbhost;.\include;.\lib) DEBUG OBJECTEXTEND PRINT(.\Debug\common.lst) OBJECT(.\Debug\common.obj)
line level source
1 /****************************************************************
2 * Viaon Technology (Suzhou) Co.,Ltd
3 *
4 * Copyright 2007, Viaon Technology (Suzhou) Co.,Ltd,Suzhou,China
5 * All rights reserved.
6 *
7 *
8 * Filename: common.c
9 *
10 * Programmer: Greg
11 *
12 * Created: 1/2/2008
13 *
14 * Description: public functions
15 *
16 *
17 * Change History (most recent first): 2008.1.2
18 ****************************************************************/
19 //#include <intrins.h>
20
21 #include "utiltypedef.h"
22 #include "va4010reg.h"
23 #include "common.h"
24
25
26 WORD WordSwap(WORD dat)
27 {
28 1 #if 0
return(((dat&0x00FF)<<8)|((dat&0xFF00)>>8));
#else
31 1 WORD in;
32 1 WORD out;
33 1
34 1 in = dat;
35 1 out = LoadAlien16(&in);
36 1 return out;
37 1 #endif
38 1 }
39
40 DWORD SwapINT32(DWORD dat)
41 {
42 1 #if 0
dData = (dData&0xff)<<24|(dData&0xff00)<<8|(dData&0xff000000)>>24|(dData&0xff0000)>>8;
return dData;
#else
46 1 DWORD in, out;
47 1
48 1 in = dat;
49 1 LoadAlien32(&in, &out);
50 1 return out;
51 1 #endif
52 1 }
53
C51 COMPILER V8.01 COMMON 04/17/2008 09:54:24 PAGE 2
54 void DelayMs(BYTE nFactor)
55 {
56 1 BYTE i;
57 1
58 1 for(i=0; i<nFactor; i++){
59 2 DelayUs(200);
60 2 }
61 1 }
62
63 void DelayUs(BYTE nFactor)
64 {
65 1 BYTE i;
66 1 volatile BYTE tmp=0;
67 1
68 1 for(i=0; i<nFactor; i++){
69 2 tmp ++;
70 2 // _nop_ ();
71 2 }
72 1
73 1 }
74
75 #if (UART_DEBUG == UART_DEBUG_ENABLE)
void UartOutText(unsigned char *buffer)
{
//WDT = 0X00;
while(*buffer != '\0')
{
SBUF = *buffer;
while(!(SCON & 0x02)); // wait till tx done
SCON &= ~(0x02); //Clear tx done
buffer++;
}
//WDT = 0X1F;
return;
}
unsigned char UartOutText1(unsigned char *pUsrBuf, unsigned int num)
{
#if 1
unsigned int i;
unsigned char *ptr;
//WDT = 0X00;
ptr = pUsrBuf;
for (i=0;i<num;i++)
{
SBUF = *ptr;
while(!(SCON & SCON_TXINT)); // wait till tx done
SCON &= ~(0x02); //Clear tx done
ptr++;
}
//WDT = 0X1F;
//UartOutText("\r\n");
#endif
return(1);
}
void UartOutValue(unsigned long value, unsigned char length)
{
C51 COMPILER V8.01 COMMON 04/17/2008 09:54:24 PAGE 3
#if 0
UART *uart;
BYTE byte;
BYTE *point;
uart = (UART *)(UART_BASE);
value = value << ((8-length) * 4);
while(length)
{
byte = (value & 0xf0000000) >> 28;
byte += 0x30;
if(byte > 0x39) byte += 7;
while(!(uart->UartInt & 0x0040)); // wait until tx fifo ready
uart->UartData = byte;
value = value << 4;
length --;
}
#else
unsigned char byte;
//unsigned char *point;
//WDT = 0X00;
value = value << ((8-length) * 4);
while(length) {
byte = (value & 0xf0000000) >> 28;
byte += 0x30;
if(byte > 0x39) byte += 7;
//while(!(uart->UartInt & 0x0040)); // wait until tx fifo ready
//uart->UartData = byte;
SBUF = byte;
while(!(SCON & 0x02)); // wait till tx done
SCON &= ~(0x02); //Clear tx done
value = value << 4;
length --;
}
//WDT = 0X1F;
UartOutText("\r\n");
#endif
return;
}
#endif
161
162 #if (UART_DEBUG == UART_DEBUG_ENABLE)
//#if 1
void UartOutInfo(unsigned char *buffer)
{
while(*buffer != '\0')
{
SBUF = *buffer;
while(!(SCON & 0x02)); // wait till tx done
SCON &= ~(0x02); //Clear tx done
buffer++;
}
return;
}
C51 COMPILER V8.01 COMMON 04/17/2008 09:54:24 PAGE 4
#if 0
unsigned char UartOutInfo1(unsigned char *pUsrBuf, unsigned int num)
{
#if 1
unsigned int i;
unsigned char *ptr;
ptr = pUsrBuf;
for (i=0;i<num;i++)
{
SBUF = *ptr;
while(!(SCON & SCON_TXINT)); // wait till tx done
SCON &= ~(0x02); //Clear tx done
ptr++;
}
UartOutInfo("\r\n");
#endif
return(1);
}
#endif
void UartOutData(unsigned long value, unsigned char length)
{
#if 0
UART *uart;
BYTE byte;
BYTE *point;
uart = (UART *)(UART_BASE);
value = value << ((8-length) * 4);
while(length)
{
byte = (value & 0xf0000000) >> 28;
byte += 0x30;
if(byte > 0x39) byte += 7;
while(!(uart->UartInt & 0x0040)); // wait until tx fifo ready
uart->UartData = byte;
value = value << 4;
length --;
}
#else
unsigned char byte;
//unsigned char *point;
value = value << ((8-length) * 4);
while(length) {
byte = (value & 0xf0000000) >> 28;
byte += 0x30;
if(byte > 0x39) byte += 7;
//while(!(uart->UartInt & 0x0040)); // wait until tx fifo ready
//uart->UartData = byte;
SBUF = byte;
while(!(SCON & 0x02)); // wait till tx done
SCON &= ~(0x02); //Clear tx done
C51 COMPILER V8.01 COMMON 04/17/2008 09:54:24 PAGE 5
value = value << 4;
length --;
}
UartOutInfo("\r\n");
#endif
return;
}
#endif
248
249 void memclr(void* a, WORD c)
250 {
251 1 WORD i;
252 1 for(i = 0 ; i < c ; i++)
253 1 *((BYTE *)a + i) = 0;
254 1
255 1 return;
256 1 }
257
258 BYTE memcomp(const BYTE* a, const BYTE* b, BYTE c)
259 {
260 1 while(c)
261 1 {
262 2 if((*a) != (*b))
263 2 return c;
264 2 c--;
265 2 a++;
266 2 b++;
267 2 }
268 1
269 1 return 0;//the same
270 1 }
271
272 void *memcopy(BYTE* a, const BYTE* b, BYTE c) //max only 255 bytes, ; DWORD c)
273 {
274 1 while(c)
275 1 {
276 2 *a = *b;
277 2 c--;
278 2 a++;
279 2 b++;
280 2 }
281 1 return a+=c;
282 1 }
283
284 BYTE Value2Exp(WORD wVal)
285 {
286 1 BYTE byExp = 0;
287 1
288 1 while(wVal = (wVal>>1))
289 1 byExp ++;
290 1
291 1 return byExp;
292 1 }
293
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 309 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- 32
PDATA SIZE = ---- ----
DATA SIZE = ---- ----
C51 COMPILER V8.01 COMMON 04/17/2008 09:54:24 PAGE 6
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 + -