📄 0001.lst
字号:
ARM COMPILER V2.42, 0001 17/01/09 22:24:15 PAGE 1
ARM COMPILER V2.42, COMPILATION OF MODULE 0001
OBJECT MODULE PLACED IN 0001.OBJ
COMPILER INVOKED BY: C:\Keil\ARM\BIN\CA.exe 0001.c THUMB BROWSE DEBUG TABS(4)
stmt level source
1 #include "main.h"
2
3 extern int p; //优化变量
4 extern int t;
5 extern int w;
6 extern unsigned char ratiointendh; //eto co2中间转换值
7 extern unsigned char ratiointendl;
8 extern unsigned char rr1; //呼吸率转换值
9 extern unsigned char rr2;
10 extern unsigned char factor;
11 extern unsigned char a2; //rationint changing number时时的co2值
12 extern unsigned char a1;
13
14 extern unsigned char flagadjust;
15 extern unsigned char text;
16 extern unsigned char ttflag;
17 extern unsigned int countadjust;
18
19 extern int utem; //采用得到温度值
20 extern int uco2tem; //temp variable
21 extern int ureftem;
22
23 void SystemInit();
24 void DataProc();
25 void Hand();
26
27 /********************************************
28 * 定时器0中断服务子程序
29 *
30 *******************************************/
31 void IRQ_Handler(void) __irq
32 {
33 1 if(IRQSTA & TIMER0){
34 2 T0CLRI = 0;
35 2 PrintStr("T0 interrupt!");
36 2 NewLine();
37 2 if((countadjust<1000) && (flagadjust==0x00) && (ttflag==0x00)){
38 3 t--;
39 3 if(t == 0){
40 4 if(p > 3000){
41 5 rr1 = 0;
42 5 rr2 = 0;
43 5 }
44 4 if(w == 1){
45 5 SendHex(0x80);SendHex(0x0a);SendHex(0x05);
46 5 SendHex(a1); SendHex(a2); SendHex(0x01);
47 5 SendHex(0x00);SendHex(0x00);SendHex(0x00);
48 5 SendHex(0x00);SendHex(0x00);SendHex(0x80);
49 5 SendHex(0x07);SendHex(0x05);SendHex(a1);
50 5 SendHex(a2); SendHex(0x03);SendHex(rr1);
51 5 SendHex(rr2);
52 5 w=0;
53 5 }else{
54 5 SendHex(0x80);SendHex(0x07);SendHex(0x05);
55 5 SendHex(a1); SendHex(a2); SendHex(0x02);
56 5 SendHex(ratiointendh);
57 5 SendHex(ratiointendl);
58 5 w=1;
59 5 }
ARM COMPILER V2.42, 0001 17/01/09 22:24:15 PAGE 2
60 4 SendHex(0x80); SendHex(0x0a); SendHex(0x05);
61 4 SendHex(a1); SendHex(a2); SendHex(0x01);
62 4 SendHex(0x00); SendHex(0x04);
63 4 SendHex(0x80); SendHex(0x0a); SendHex(0x05);
64 4 SendHex(a1); SendHex(a2); SendHex(0x01);
65 4 SendHex(0x00); SendHex(0x00);
66 4 t=198;
67 4 }
68 3 }
69 2 }else{
70 2 PrintStr("Error!");
71 2 }
72 1 }
73
74 void main()
75 {
76 1 SystemInit();
77 1 PrintStr("hello begin!");
78 1 NewLine();
79 1 Hand();
80 1
81 1 LEDON; //开光源
82 1 T0CON |= 0x80; //T0 run
83 1 while(1){
84 2 uco2tem = ADCChannel(1);
85 2 ureftem = ADCChannel(2);
86 2 utem = ADCChannel(3);
87 2 DataProc();
88 2 }
89 1
90 1 while(1);
91 1
92 1 }
93 /**********************************
94 * 整个系统初始化
95 *
96 *********************************/
97 void SystemInit()
98 {
99 1 //the arm core initial ARM内核初始化
100 1 PLLKEY1 = 0xAA;
101 1 PLLCON = 0x01; //PLL + 32kHz oscillator – default configuration
102 1 PLLKEY2 = 0x55;
103 1 POWKEY1 = 0x01;
104 1 POWCON = 0x00; //the clock configured as 45.088M
105 1 POWKEY2 = 0xF4;
106 1
107 1 //the light control 指示灯P4.2
108 1 // GP4DAT |= (LED2 << 24); //set p4.2 as output
109 1
110 1 //ADC initial AD初始化
111 1 ADCInit();
112 1
113 1 //Uart initial 19200 串口初始化
114 1 UartInit();
115 1
116 1 //time 0 10ms interrupt initial 定时器0初始化
117 1 Timer0Init();
118 1 }
119
120 /*****************************************************
121 * 将factor存入falsh永久保存?
122 * 函数主要功能是用过串口终端, 用户输入:factor参数
123 * 0xa7 factor
124 * 否则factor = EDATA1中的值
125 *****************************************************/
ARM COMPILER V2.42, 0001 17/01/09 22:24:15 PAGE 3
126 void Hand()
127 {
128 1 unsigned char v2 = 0;
129 1 unsigned char tmpv = 0;
130 1 // unsigned char factor = 0;
131 1 // unsigned char ttflag = 0;
132 1
133 1 v2 = GetData();
134 1 if(0xa7 == v2){
135 2 tmpv = GetData(); //输入factor数值
136 2 FlashWriteByte(FACTADDR,tmpv);
137 2 factor = FlashReadByte(FACTADDR); //factor
138 2 SendHex(factor);
139 2
140 2 FlashWriteByte(FACTADDR+1,0x01); // default factor = 0x01 write to flash
141 2 }else{
142 2 factor = FlashReadByte(FACTADDR);
143 2 }
144 1 while(1){
145 2 tmpv = GetData();
146 2 if((0xCC == tmpv) || (0x80 == tmpv)){
147 3 SendHex(0xCC);
148 3 SendByte(' ');
149 3 SendHex(0x01);
150 3 SendByte(' ');
151 3 SendHex(0x33);
152 3 NewLine();
153 3
154 3 tmpv = FlashReadByte(FACTADDR+1);
155 3 if (tmpv < 4){
156 4 tmpv += 1;
157 4 FlashWriteByte(FACTADDR+1,tmpv);
158 4 }
159 3 ttflag = 0;
160 3 return ;
161 3 }
162 2 }
163 1
164 1 }
ARM COMPILER V2.42, 0001 17/01/09 22:24:15 PAGE 4
ASSEMBLY LISTING OF GENERATED OBJECT CODE
*** EXTERNALS:
EXTERN CODE16 (UartInit?T)
EXTERN CODE16 (SendByte?T)
EXTERN CODE16 (SendHex?T)
EXTERN CODE16 (PrintStr?T)
EXTERN CODE16 (NewLine?T)
EXTERN CODE16 (GetData?T)
EXTERN CODE16 (Timer0Init?T)
EXTERN CODE16 (ADCInit?T)
EXTERN CODE16 (ADCChannel?T)
EXTERN CODE16 (FlashReadByte?T)
EXTERN CODE16 (FlashWriteByte?T)
EXTERN DATA (p)
EXTERN DATA (t)
EXTERN DATA (w)
EXTERN DATA (ratiointendh)
EXTERN DATA (ratiointendl)
EXTERN DATA (rr1)
EXTERN DATA (rr2)
EXTERN DATA (factor)
EXTERN DATA (a2)
EXTERN DATA (a1)
EXTERN DATA (flagadjust)
EXTERN DATA (ttflag)
EXTERN DATA (countadjust)
EXTERN DATA (utem)
EXTERN DATA (uco2tem)
EXTERN DATA (ureftem)
EXTERN CODE16 (DataProc?T)
EXTERN CODE32 (PrintStr?A)
EXTERN CODE32 (NewLine?A)
EXTERN CODE32 (SendHex?A)
EXTERN NUMBER (__startup)
*** PUBLICS:
PUBLIC SystemInit?T
PUBLIC Hand?T
PUBLIC IRQ_Handler?A
PUBLIC main
*** DATA SEGMENT '?CON?0001':
00000000 ??S_3:
00000000 DB 'hello begin!',0x00
0000000D ??S_2:
0000000D DB 'Error!',0x00
00000014 ??S_1:
00000014 DB 'T0 interrupt!',0x00
*** CODE SEGMENT '?PR?IRQ_Handler?A?0001':
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -