📄 rs485test.lst
字号:
ARM COMPILER V2.20a, test_P3 18/07/05 12:57:54 PAGE 1
ARM COMPILER V2.20a, COMPILATION OF MODULE test_P3
OBJECT MODULE PLACED IN test_P3.OBJ
COMPILER INVOKED BY: C:\Keil\ARM\BIN\CA.exe test_P3.c ARM OPTIMIZE(2,SPEED) BROWSE DEBUG TABS(4)
stmt level source
1 #include "LPC2xxx.h"
2 extern unsigned long UART0_RE_Flag;
3 extern unsigned long UART0_TE_Flag;
4 extern unsigned int UART0_T_Count;
5 extern unsigned char UART0_RData[522];
6 extern unsigned char UART0_TData[522];
7 unsigned int IM_Data_Length;
8 unsigned int Z_Data_Length;
9 unsigned char IM_Data[522];
10 unsigned char Z_Data[20];
11 unsigned char K_Data[20];
12 unsigned char S0PSR_tmp;
13
14 extern unsigned int InData_Count;
15 extern unsigned char SPI0_InData[512];
16 extern unsigned long InData_RS_Flag;
17 extern unsigned long InData_RE_Flag;
18 extern unsigned long UART0_TS_Flag;
19 extern unsigned long psk_InData_Flag;
20 extern unsigned long sp_InData_Flag;
21 extern unsigned long ZL_Flag;
22
23 extern void power_on_initialization();
24 extern void DelayNS(unsigned int);
25 extern int InData(void);
26 extern int control(void);
27 extern int zl(void);
28 unsigned char ASCiitoHEX(unsigned char);
29 unsigned char HEXtoASCii(unsigned char );
30
31
32 //****************************************************************************
33 //* 名称:main()
34 //* 功能:This edition add psk InData function.
35 //****************************************************************************/
36 int main(void)
37 {
38 1 int i,j;
39 1 power_on_initialization();
40 1
41 1 while(1)
42 1 {
43 2 if(UART0_RE_Flag == 0x55555555)
44 2 {
45 3 UART0_T_Count = 0x0001;
46 3 if ((UART0_RData[5]==0x49)&&(UART0_RData[6]==0x4d)) // char_IM In_Data
47 3 {
48 4 IM_Data_Length=ASCiitoHEX(UART0_RData[4]);
49 4 IM_Data_Length=IM_Data_Length+0x10*ASCiitoHEX(UART0_RData[3]);
50 4 IM_Data_Length=IM_Data_Length+0x100*ASCiitoHEX(UART0_RData[2]);
51 4 IM_Data_Length=IM_Data_Length+0x1000*ASCiitoHEX(UART0_RData[1]);
52 4 j=0;
53 4
54 4 for(i=7;i<=(IM_Data_Length+4);i=i+2)
55 4 {
56 5 IM_Data[j]=0x10*ASCiitoHEX(UART0_RData[i]);
57 5 IM_Data[j]=IM_Data[j]+ASCiitoHEX(UART0_RData[i+1]);
58 5 j++;
59 5 }
ARM COMPILER V2.20a, test_P3 18/07/05 12:57:54 PAGE 2
60 4
61 4 InData_Count = 0x00000000;
62 4 UART0_RE_Flag = 0xaaaaaaaa;
63 4 InData_RS_Flag=0x55555555;
64 4 //S0PCR = 0x90; // pclk/100
65 4 //if ((psk_InData_Flag==0x55555555)||(sp_InData_Flag==0x55555555))
66 4 InData();
67 4 }
68 3
69 3 if (UART0_RData[1]==0x5A) //char_Z ZL1_ZL32
70 3 {
71 4 j=0;
72 4 for(i=2;i<=9;i=i+2)
73 4 {
74 5 Z_Data[j]=0x10*ASCiitoHEX(UART0_RData[i]);
75 5 Z_Data[j]=Z_Data[j]+ASCiitoHEX(UART0_RData[i+1]);
76 5 j++;
77 5 }
78 4
79 4 UART0_RE_Flag = 0xaaaaaaaa;
80 4 if (ZL_Flag==0x55555555) zl();
81 4 }
82 3
83 3 if (UART0_RData[1]==0x4B) //char_K ctrl test board
84 3 {
85 4 j=0;
86 4 for(i=2;i<=9;i=i+2)
87 4 {
88 5 K_Data[j]=0x10*ASCiitoHEX(UART0_RData[i]);
89 5 K_Data[j]=K_Data[j]+ASCiitoHEX(UART0_RData[i+1]);
90 5 j++;
91 5 }
92 4
93 4 UART0_RE_Flag = 0xaaaaaaaa;
94 4 control();
95 4 }
96 3
97 3 }
98 2
99 2 if ((S0PSR_tmp==0x80)&&((IO0PIN&0x00001000)==0x00001000))
100 2 {
101 3 S0PSR_tmp=0x00;
102 3 InData_RE_Flag=0x55555555;
103 3 InData_RS_Flag=0xaaaaaaaa;
104 3 }
105 2
106 2 if (InData_RE_Flag==0x55555555)
107 2 {
108 3 S0PCR = 0x10; // pclk/100
109 3 for (i=1;i<=(InData_Count+4);i++)
110 3 {
111 4 UART0_TData[2*i-1]=HEXtoASCii((SPI0_InData[i-1])>>4);
112 4 UART0_TData[2*i]=HEXtoASCii((SPI0_InData[i-1])&0x0f);
113 4 }
114 3
115 3 U0THR = 0x53;
116 3 UART0_TData[2*InData_Count+1]=0x51;
117 3
118 3 UART0_T_Count=0x00000000;
119 3 UART0_TS_Flag = 0x55555555;
120 3 InData_RE_Flag=0xaaaaaaaa;
121 3 }
122 2
123 2 }
124 1
125 1 return(0);
ARM COMPILER V2.20a, test_P3 18/07/05 12:57:54 PAGE 3
126 1 }
127
128
129 unsigned char ASCiitoHEX(unsigned char str1)
130 {
131 1 if ((str1>=0x30)&&(str1<=0x39))
132 1 {
133 2 return(str1-0x30);
134 2 }
135 1 if ((str1>=0x41)&&(str1<=0x46))
136 1 {
137 2 return(str1-0x37);
138 2 }
139 1
140 1 return 1;
141 1 }
142
143
144 unsigned char HEXtoASCii(unsigned char str1)
145 {
146 1 if (str1<=0x09) //if ((str1>=0x00)&&(str1<=0x09))
147 1 {
148 2 return(str1+0x30);
149 2 }
150 1 if ((str1>=0x0A)&&(str1<=0x0F))
151 1 {
152 2 return(str1+0x37);
153 2 }
154 1
155 1 return 1;
156 1 }
ARM COMPILER V2.20a, test_P3 18/07/05 12:57:54 PAGE 4
ASSEMBLY LISTING OF GENERATED OBJECT CODE
*** EXTERNALS:
EXTERN DATA (UART0_RE_Flag)
EXTERN DATA (UART0_T_Count)
EXTERN DATA (UART0_RData)
EXTERN DATA (UART0_TData)
EXTERN DATA (InData_Count)
EXTERN DATA (SPI0_InData)
EXTERN DATA (InData_RS_Flag)
EXTERN DATA (InData_RE_Flag)
EXTERN DATA (UART0_TS_Flag)
EXTERN DATA (ZL_Flag)
EXTERN CODE32 (power_on_initialization?A)
EXTERN CODE32 (InData?A)
EXTERN CODE32 (control?A)
EXTERN CODE32 (zl?A)
EXTERN NUMBER (__startup)
*** PUBLICS:
PUBLIC ASCiitoHEX?A
PUBLIC HEXtoASCii?A
PUBLIC main
PUBLIC IM_Data_Length
PUBLIC Z_Data_Length
PUBLIC IM_Data
PUBLIC Z_Data
PUBLIC K_Data
PUBLIC S0PSR_tmp
*** DATA SEGMENT '?DT0?test_P3':
00000000 IM_Data_Length:
00000000 DS 4
00000004 Z_Data_Length:
00000004 DS 4
00000008 IM_Data:
00000008 DS 522
00000212 Z_Data:
00000212 DS 20
00000226 K_Data:
00000226 DS 20
0000023A S0PSR_tmp:
0000023A DS 1
*** CODE SEGMENT '?PR?main?test_P3':
36: int main(void)
00000000 E92D4000 STMDB R13!,{LR}
00000004 ---- Variable 'i' assigned to Register 'R5' ----
00000004 ---- Variable 'j' assigned to Register 'R4' ----
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -