|
|
|
C51 COMPILER V9.54 ASP_LOWPOWER 09/06/2024 14:31:10 PAGE 1
|
|
|
|
|
|
|
|
|
|
|
|
C51 COMPILER V9.54, COMPILATION OF MODULE ASP_LOWPOWER
|
|
|
|
OBJECT MODULE PLACED IN ..\out\asp_lowpower.obj
|
|
|
|
COMPILER INVOKED BY: E:\KeilC51\C51\BIN\C51.EXE ..\source\asp\asp_lowpower.c LARGE OMF2 OPTIMIZE(0,SIZE) BROWSE ORDER NO
|
|
|
|
-INTPROMOTE INCDIR(..\source\bsp;..\source\msp;..\source\app;..\source\clib;..\source\cpu;..\source\ctask;..\source\tpc;.
|
|
|
|
-.\source\asp;..\source\debug;..\source\msp\uart;..\source\msp\simiic;..\source\bsp\oled;..\source\bsp\TTSSbsp) DEBUG PRI
|
|
|
|
-NT(..\out\asp_lowpower.lst) TABS(2) OBJECT(..\out\asp_lowpower.obj)
|
|
|
|
|
|
|
|
line level source
|
|
|
|
|
|
|
|
1 //////////////////////////////////////////////////////////////////////////
|
|
|
|
2 /// COPYRIGHT NOTICE
|
|
|
|
3 /// Copyright (c) 2023, 传控科技
|
|
|
|
4 /// All rights reserved.
|
|
|
|
5 ///
|
|
|
|
6 /// @file asp_gsensor.c
|
|
|
|
7 /// @brief asp_gsensor
|
|
|
|
8 ///
|
|
|
|
9 ///(本文件实现的功能的详述)
|
|
|
|
10 ///
|
|
|
|
11
|
|
|
|
12 ////20221217_213321 CCmodify new uart struct for road protocol
|
|
|
|
13
|
|
|
|
14 #include "msp_UART1.h"
|
|
|
|
*** WARNING C320 IN LINE 51 OF ..\source\bsp\TTSSbsp\bsp_config.h: "MainFre_22M"
|
|
|
|
15 #include "msp_UART2.h"
|
|
|
|
16
|
|
|
|
17 #include "debug_drv.h"
|
|
|
|
18 #include "bsp_config.h"
|
|
|
|
19 #include "asp_gsensor.h"
|
|
|
|
20 #include "bsp_moto.h"
|
|
|
|
21
|
|
|
|
22 #include "asp_move.h"
|
|
|
|
23
|
|
|
|
24 #include "asp_lowpower.h"
|
|
|
|
25
|
|
|
|
26 #define D_version_main "7.0"
|
|
|
|
27
|
|
|
|
28
|
|
|
|
29
|
|
|
|
30 void L0_uart_close(void)
|
|
|
|
31 {
|
|
|
|
32 1 L0_uart1_str("\r\nuart1 close");///
|
|
|
|
33 1 Lc_delay_ms(20);
|
|
|
|
34 1
|
|
|
|
35 1 EA = 0;
|
|
|
|
36 1 D_uart1_ES_INT(0);
|
|
|
|
37 1 //// D_UART2_ES_INT(0);
|
|
|
|
38 1 AUXR = 0; //定时器2开始计时
|
|
|
|
39 1
|
|
|
|
40 1 ET1 = 0; //禁止定时器%d中断
|
|
|
|
41 1 TR1 = 0; //定时器1开始计时
|
|
|
|
42 1 }
|
|
|
|
43 void L0_uart1_open(void)
|
|
|
|
44 {//
|
|
|
|
45 1 L0_uart1_buf_init();//串口初始化//
|
|
|
|
46 1
|
|
|
|
47 1 EA = 1;
|
|
|
|
48 1 L0_uart1_str("\r\nuart1 open");
|
|
|
|
49 1 }
|
|
|
|
50 void L0_uart2_open(void)
|
|
|
|
51 {//
|
|
|
|
C51 COMPILER V9.54 ASP_LOWPOWER 09/06/2024 14:31:10 PAGE 2
|
|
|
|
|
|
|
|
52 1 //// L0_uart2_buf_init();
|
|
|
|
53 1 EA = 1;
|
|
|
|
54 1 L0_uart1_str("\r\nuart2 open");
|
|
|
|
55 1 }
|
|
|
|
56
|
|
|
|
57
|
|
|
|
58
|
|
|
|
59 void L0_SetWakeUpTime(u16 SetTime)
|
|
|
|
60 {
|
|
|
|
61 1 SetTime = (U16)((32768UL * (U32)SetTime) / 16000); //重装值 = Fwkt/16 * SetTime/1000 = Fwkt * SetT
|
|
|
|
-ime / 16000
|
|
|
|
62 1 if(SetTime > 0) SetTime--;
|
|
|
|
63 1 WKTCL = (u8)SetTime;
|
|
|
|
64 1 WKTCH = (u8)(SetTime >> 8) | 0x80;
|
|
|
|
65 1 }
|
|
|
|
66
|
|
|
|
67
|
|
|
|
68 void L0_main_lowp_set(void)
|
|
|
|
69 {//
|
|
|
|
70 1 L0_uart_close();
|
|
|
|
71 1 L0_SetWakeUpTime(10000);///
|
|
|
|
72 1 BITN_1(P_SW2 ,BITN7);///P_SW2|=0x80;
|
|
|
|
73 1 ////PCON = 0;
|
|
|
|
74 1
|
|
|
|
75 1
|
|
|
|
76 1 ///0:禁止端口内部的 4.1K 上拉电阻
|
|
|
|
77 1 ///1:使能端口内部的 4.1K 上拉电阻
|
|
|
|
78 1 P0PU = 0;
|
|
|
|
79 1 P1PU = 0;
|
|
|
|
80 1 P2PU = 0;
|
|
|
|
81 1 P3PU = 0;
|
|
|
|
82 1 P4PU = 0;
|
|
|
|
83 1 P5PU = 0;
|
|
|
|
84 1
|
|
|
|
85 1
|
|
|
|
86 1 ///0:使能端口的施密特触发功能。(上电复位后默认使能施密特触发)
|
|
|
|
87 1 P0NCS = 0xff;
|
|
|
|
88 1 P1NCS = 0xff;
|
|
|
|
89 1 P2NCS = 0xff;
|
|
|
|
90 1 P3NCS = 0xff;
|
|
|
|
91 1 P4NCS = 0xff;
|
|
|
|
92 1 P5NCS = 0xff;
|
|
|
|
93 1
|
|
|
|
94 1
|
|
|
|
95 1
|
|
|
|
96 1
|
|
|
|
97 1
|
|
|
|
98 1 ////1:电平转换速度慢,相应的上下冲比较小
|
|
|
|
99 1 P0SR =0xff;
|
|
|
|
100 1 P1SR =0xff;
|
|
|
|
101 1 P2SR =0xff;
|
|
|
|
102 1 P3SR =0xff;
|
|
|
|
103 1 P4SR =0xff;
|
|
|
|
104 1 P5SR =0xff;
|
|
|
|
105 1
|
|
|
|
106 1 ///1:一般驱动能力
|
|
|
|
107 1 P0DR =0xff;
|
|
|
|
108 1 P1DR =0xff;
|
|
|
|
109 1 P2DR =0xff;
|
|
|
|
110 1 P3DR =0xff;
|
|
|
|
111 1 P4DR =0xff;
|
|
|
|
112 1 P5DR =0xff;
|
|
|
|
C51 COMPILER V9.54 ASP_LOWPOWER 09/06/2024 14:31:10 PAGE 3
|
|
|
|
|
|
|
|
113 1
|
|
|
|
114 1 ///0:禁止数字信号输入。若 I/O 被当作比较器输入口、ADC 输入口、触摸按键输入
|
|
|
|
-口或者为外部晶 振接入脚等模拟口时,
|
|
|
|
115 1 ///进入时钟停振模式前,必须设置为 0,否则会有额外的耗电。
|
|
|
|
116 1 ///1:使能数字信号输入。若 I/O 被当作数字口时,必须设置为 1,否 MCU 无法读取
|
|
|
|
-外部端口的电平。
|
|
|
|
117 1 P0IE =0;
|
|
|
|
118 1 P1IE =0;
|
|
|
|
119 1 P2IE =0;
|
|
|
|
120 1 P3IE =0;
|
|
|
|
121 1 P4IE =0;
|
|
|
|
122 1 P5IE =0;
|
|
|
|
123 1
|
|
|
|
124 1 BITN_1(P_SW2 ,BITN7);USBCON = 0;
|
|
|
|
125 1 ////USBCON = 0;
|
|
|
|
126 1 ///USBCON = 0x80;
|
|
|
|
127 1
|
|
|
|
128 1 ADC_CONTR = 0; ////建议进入空闲模式和掉电模式前将 ADC 电源关闭,以降低功耗
|
|
|
|
129 1 RSTCFG = 0;//没有变化43ua 41ua 低压复位控制位
|
|
|
|
130 1
|
|
|
|
131 1 D_HighR_P0_ALL();
|
|
|
|
132 1 D_HighR_P1_ALL();
|
|
|
|
133 1 D_HighR_P2_ALL();
|
|
|
|
134 1 D_HighR_P3_ALL();
|
|
|
|
135 1 D_HighR_P4_ALL();
|
|
|
|
136 1 D_HighR_P5_ALL();/***********
|
|
|
|
137 1
|
|
|
|
138 1 P3 = 0;
|
|
|
|
139 1
|
|
|
|
140 1
|
|
|
|
141 1 P0 = 0;
|
|
|
|
142 1 P1 = 0;
|
|
|
|
143 1 P2 = 0;
|
|
|
|
144 1 P4 = 0;
|
|
|
|
145 1 P5 = 0;
|
|
|
|
146 1
|
|
|
|
147 1
|
|
|
|
148 1 *********/
|
|
|
|
149 1
|
|
|
|
150 1 P0 = 0xff;
|
|
|
|
151 1 P1 = 0xff;
|
|
|
|
152 1 P2 = 0xff;
|
|
|
|
153 1 P4 = 0xff;
|
|
|
|
154 1 P5 = 0xff;
|
|
|
|
155 1
|
|
|
|
156 1 D_stdIO_P4(BITN1);
|
|
|
|
157 1 ///D_OpenD_P4(BITN1);
|
|
|
|
158 1 D_P41_ON();
|
|
|
|
159 1
|
|
|
|
160 1
|
|
|
|
161 1 /*****
|
|
|
|
162 1
|
|
|
|
163 1 // XOSCCR =0;
|
|
|
|
164 1 ///HIRCCR = 0;
|
|
|
|
165 1 IRC32KCR = 0x80; //启动内部32K IRC
|
|
|
|
166 1 while (!(IRC32KCR & 1)); //等待时钟稳定
|
|
|
|
167 1 CLKDIV = 0x00; //时钟不分频
|
|
|
|
168 1 CLKSEL = 0x03; //选择内部32K
|
|
|
|
169 1 P_SW2 = 0x00;
|
|
|
|
170 1
|
|
|
|
171 1 P45
|
|
|
|
172 1 P27
|
|
|
|
C51 COMPILER V9.54 ASP_LOWPOWER 09/06/2024 14:31:10 PAGE 4
|
|
|
|
|
|
|
|
173 1 P26
|
|
|
|
174 1 P44
|
|
|
|
175 1 P43
|
|
|
|
176 1 p13
|
|
|
|
177 1 P23 switch2 限位开关
|
|
|
|
178 1 P40 SWITCH1 限位开关
|
|
|
|
179 1
|
|
|
|
180 1 P41 SW_CAL 电源分压电阻 =1 关闭
|
|
|
|
181 1 *******/
|
|
|
|
182 1
|
|
|
|
183 1 }
|
|
|
|
184
|
|
|
|
185 /*
|
|
|
|
186
|
|
|
|
187 void L2_main_version(u8 d)
|
|
|
|
188 {
|
|
|
|
189
|
|
|
|
190 printfs(D_version_main);
|
|
|
|
191 L1_uartD_uc(d);
|
|
|
|
192 printfs(D_BOARD_NAME);
|
|
|
|
193 printfs(__DATE__);
|
|
|
|
194 printfs(__TIME__);
|
|
|
|
195
|
|
|
|
196
|
|
|
|
197 }
|
|
|
|
198 */
|
|
|
|
199
|
|
|
|
200
|
|
|
|
201 void L1_main_lowp_test(void)
|
|
|
|
202 {//
|
|
|
|
203 1
|
|
|
|
204 1 while(9)
|
|
|
|
205 1 {
|
|
|
|
206 2 /// L2_gsensor_init(0);
|
|
|
|
207 2 L0_main_lowp_set();
|
|
|
|
208 2 _nop_();
|
|
|
|
209 2 _nop_();
|
|
|
|
210 2
|
|
|
|
211 2 //// L0_uart_close();
|
|
|
|
212 2
|
|
|
|
213 2 PCON = 0x02; ////2222 //MCU进入掉电模式
|
|
|
|
214 2 ///D_LPCD_INT_CLOSE(); 对掉电唤醒后有一个中断进来没有效果
|
|
|
|
215 2 _nop_();
|
|
|
|
216 2 _nop_(); _nop_();
|
|
|
|
217 2 _nop_(); _nop_();
|
|
|
|
218 2 _nop_();
|
|
|
|
219 2
|
|
|
|
220 2 L0_uart1_open();
|
|
|
|
221 2 L0_uart2_open();
|
|
|
|
222 2 /// L2_main_version(0);
|
|
|
|
223 2
|
|
|
|
224 2 /// L2_gsensor_init(1);
|
|
|
|
225 2 }
|
|
|
|
226 1
|
|
|
|
227 1 }
|
|
|
|
228
|
|
|
|
229
|
|
|
|
230 void L3_test_lp(u8 filter)//// ON listen function
|
|
|
|
231 {
|
|
|
|
232 1 if(filter == pd->filter)
|
|
|
|
233 1 {///filter num d1 d2 d3 ....dn
|
|
|
|
234 2 //// FD 08 11 22 33 44 55 66 77 88
|
|
|
|
C51 COMPILER V9.54 ASP_LOWPOWER 09/06/2024 14:31:10 PAGE 5
|
|
|
|
|
|
|
|
235 2 ///printf("\r\nDdebug:F1 R1 R2 R3 R4 ocr FD->");
|
|
|
|
236 2 switch (pd->ocr)
|
|
|
|
237 2 {
|
|
|
|
238 3 case 0x22: ///'s'
|
|
|
|
239 3 ///FX R1 R2 R3 R4 ocr
|
|
|
|
240 3 ///F1 m R2 R3 R4 22
|
|
|
|
241 3
|
|
|
|
242 3 // L0_moto_run(pd->R1);
|
|
|
|
243 3 printf1("22: moto=(%X)",(int)pd->R1);
|
|
|
|
244 3 break;
|
|
|
|
245 3
|
|
|
|
246 3 default:
|
|
|
|
247 3 printfs(" pp error\r\n ");
|
|
|
|
248 3
|
|
|
|
249 3 break;
|
|
|
|
250 3 };
|
|
|
|
251 2
|
|
|
|
252 2 printfs("333");
|
|
|
|
253 2 }
|
|
|
|
254 1 }
|
|
|
|
255 /***
|
|
|
|
256
|
|
|
|
257 case 0x23: ///'s'
|
|
|
|
258 ///FX R1 R2 R3 R4 ocr
|
|
|
|
259 ///F1 m R2 R3 R4 22
|
|
|
|
260 if(pd->R1)
|
|
|
|
261 {
|
|
|
|
262 D_BUZ_OPEN();
|
|
|
|
263
|
|
|
|
264 }else
|
|
|
|
265 {
|
|
|
|
266 D_BUZ_OFF();
|
|
|
|
267
|
|
|
|
268 }
|
|
|
|
269 printf("22: moto=(%X)",(int)pd->R1);
|
|
|
|
270 break;
|
|
|
|
271
|
|
|
|
272
|
|
|
|
273 case 0x24: ///'s'
|
|
|
|
274 ///F1 m 23 56 64 22
|
|
|
|
275 ts_task_move.loc_angle[0] = pd->R1;
|
|
|
|
276 ts_task_move.loc_angle[1] = pd->R2;
|
|
|
|
277 ts_task_move.loc_angle[2] = pd->R3;
|
|
|
|
278 ts_task_move.loc_angle[3] = pd->R4;
|
|
|
|
279 L3_task_s_go(ts_task_move,D_task_move_init);
|
|
|
|
280 printf("move: %d %d %d %d )",(int)pd->R1,(int)pd->R2,(int)pd->R3,(int)pd->R4);
|
|
|
|
281 break;
|
|
|
|
282 case 0x25: ///'s'
|
|
|
|
283 ///F1 m 23 56 64 22
|
|
|
|
284 ts_task_move.loc_angle[0] = pd->R1;
|
|
|
|
285 ts_task_move.loc_angle[1] = pd->R2;
|
|
|
|
286 ts_task_move.loc_angle[2] = pd->R3;
|
|
|
|
287 ts_task_move.loc_angle[3] = pd->R4;
|
|
|
|
288 L3_task_s_go(ts_task_move,D_task_move_init);
|
|
|
|
289 ts_task_move.loc_now =D_2uc_u16(pd->R1, pd->R2);
|
|
|
|
290 printf("move: loc_now %XH %d )",(int)ts_task_move.loc_now,(int)ts_task_move.loc_now);
|
|
|
|
291 break;
|
|
|
|
292
|
|
|
|
293 case 0x26: ///'s'
|
|
|
|
294 ///F1 m 23 56 64 22
|
|
|
|
295 ts_task_move.loc_angle[0] = pd->R1;
|
|
|
|
296 if(pd->R1)
|
|
|
|
C51 COMPILER V9.54 ASP_LOWPOWER 09/06/2024 14:31:10 PAGE 6
|
|
|
|
|
|
|
|
297 {
|
|
|
|
298 ts_task_move.loc_now ++;
|
|
|
|
299 }
|
|
|
|
300 else
|
|
|
|
301 {
|
|
|
|
302 ts_task_move.loc_now --;
|
|
|
|
303 }
|
|
|
|
304 printf("move: loc_now %XH %d ->%d )",(int)ts_task_move.loc_now,(int)ts_task_move.loc_now,(int)ts_task_
|
|
|
|
-move.loc_want);
|
|
|
|
305 break;
|
|
|
|
306
|
|
|
|
307
|
|
|
|
308
|
|
|
|
309
|
|
|
|
310 ****/
|
|
|
|
311
|
|
|
|
312
|
|
|
|
|
|
|
|
|
|
|
|
MODULE INFORMATION: STATIC OVERLAYABLE
|
|
|
|
CODE SIZE = 590 ----
|
|
|
|
CONSTANT SIZE = 71 ----
|
|
|
|
XDATA SIZE = 3 ----
|
|
|
|
PDATA SIZE = ---- ----
|
|
|
|
DATA SIZE = ---- ----
|
|
|
|
IDATA SIZE = ---- ----
|
|
|
|
BIT SIZE = ---- ----
|
|
|
|
EDATA SIZE = ---- ----
|
|
|
|
HDATA SIZE = ---- ----
|
|
|
|
XDATA CONST SIZE = ---- ----
|
|
|
|
FAR CONST SIZE = ---- ----
|
|
|
|
END OF MODULE INFORMATION.
|
|
|
|
|
|
|
|
|
|
|
|
C51 COMPILATION COMPLETE. 1 WARNING(S), 0 ERROR(S)
|