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)