C51 COMPILER V9.54 APP_WEIGHT 09/06/2024 11:24:44 PAGE 1 C51 COMPILER V9.54, COMPILATION OF MODULE APP_WEIGHT OBJECT MODULE PLACED IN ..\out\app_weight.obj COMPILER INVOKED BY: E:\KeilC51\C51\BIN\C51.EXE ..\source\app\app_weight.c LARGE OMF2 OPTIMIZE(0,SIZE) BROWSE ORDER NOIN -TPROMOTE 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 PRINT -(..\out\app_weight.lst) TABS(2) OBJECT(..\out\app_weight.obj) line level source 1 //////////////////////////////////////////////////////////////////////////// 2 ///@copyright Copyright (c) 2018, 传控科技 All rights reserved. 3 ///------------------------------------------------------------------------- 4 /// @file bsp_drv.c 5 /// @brief bsp @ driver config 6 ///------------------------------------------------------------------------- 7 /// @version 1.0 8 /// @author CC 9 /// @date 20180331 10 /// @note cc_AS_stc02 11 ////////////////////////////////////////////////////////////////////////////// 12 13 #include "app_weight.h" *** WARNING C320 IN LINE 51 OF ..\source\bsp\TTSSbsp\bsp_config.h: "MainFre_22M" 14 #include "app_config.h" 15 #include "debug_drv.h" 16 #include "msp_eeprom.h" 17 18 #define D_0kg 0 19 #define D_20kg 200///0x00c8 20 #define D_85kg 850////0x0352 21 22 /* 23 #define D_Rsensor_out_D_0kg 0x18D9 24 #define D_Rsensor_out_D_20kg 0x1B8B 25 #define D_Rsensor_out_D_85kg 0x244D 26 */ 27 28 #define D_Rsensor_out_D_0kg 0x18D9 29 #define D_Rsensor_out_D_20kg 0x1c2c 30 #define D_Rsensor_out_D_85kg 0x26f9 31 32 33 34 35 ///#define D_20kg 190 36 ///cc 2023/04/06--6:41:48 西安方块 传感器 根据传感器调配 程序应该专门数据结构 37 38 39 ///cc 2023/04/06--7:50:26 应该是tst_weight.out6的值 40 ///cc 2023/04/09--8:11:50 adc改为out 因为到了weight这一层 已经不合适用adc,adc的和值 -输出out给了weight来做运算 41 42 TS_weight_SPara_ ts_weight_SPara = 43 { 44 'W',//0 1 u8 rev1; 45 'E',//1 2 u8 rev2; 46 D_0kg ,D_Rsensor_out_D_0kg, 47 D_20kg,D_Rsensor_out_D_20kg, 48 D_85kg,D_Rsensor_out_D_85kg, 49 50 //2 3 TS_weight_point_ zerows[3]; ///4x3=12 手工清零后的参数, 没有清零或者出错恢复 C51 COMPILER V9.54 APP_WEIGHT 09/06/2024 11:24:44 PAGE 2 -和出厂设置一样,需要实时保存 51 'A',//3 4 u8 rev3; 52 ' ',//4 5 u8 rev4; 53 54 }; 55 TS_TASK_weight_ tst_weight; 56 57 58 #define D_task_WEIGHT_add 12 59 #define D_task_WEIGHT_CAL 13 60 #define D_task_WEIGHT_get 14 61 #define D_task_WEIGHT_zero 15 62 ///#define D_task_WEIGHT_CAL 124 63 64 #define D_task_WEIGHT_out 45 65 #define D_task_WEIGHT_Sline 11 66 #define D_task_WEIGHT_getADC 22 67 ///#define D_task_WEIGHT_CAL 33 68 ////#define D_task_WEIGHT_Sline 69 70 71 72 void L2_task_weight_init(u8 openclose) 73 { 74 1 if(openclose) 75 1 { 76 2 L0_ADS1213_INIT(D_ADS1213_GAIN_128); 77 2 L2_task_adc_init(0); 78 2 L2_task_adc_init(1); 79 2 L2_task_adc_init(2); 80 2 L2_task_adc_init(3); 81 2 82 2 }else 83 1 { 84 2 tst_weight.pSPara = &ts_weight_SPara; 85 2 } 86 1 /* 87 1 L2_task_adc_SAinit(0,&S.sd.ADC_shiftaverage_a,&S.sd.ADC_shiftaverage_b); 88 1 L2_task_adc_SAinit(1,&S.sd.ADC_shiftaverage_a,&S.sd.ADC_shiftaverage_b); 89 1 L2_task_adc_SAinit(2,&S.sd.ADC_shiftaverage_a,&S.sd.ADC_shiftaverage_b); 90 1 L2_task_adc_SAinit(3,&S.sd.ADC_shiftaverage_a,&S.sd.ADC_shiftaverage_b); 91 1 92 1 93 1 94 1 95 1 ts_adc_samples[0].offset = S.sd.offset[0]; 96 1 ts_adc_samples[1].offset = S.sd.offset[1]; 97 1 ts_adc_samples[2].offset = S.sd.offset[2]; 98 1 ts_adc_samples[3].offset = S.sd.offset[3]; 99 1 100 1 101 1 */ 102 1 103 1 104 1 } 105 106 void L3_task_weight_init(void) 107 { 108 1 //显示任务初始化 109 1 L1_task_reg_clear(&tst_weight.task); 110 1 L3_task_s_go(tst_weight,D_task_init); 111 1 L2_task_weight_init(1); C51 COMPILER V9.54 APP_WEIGHT 09/06/2024 11:24:44 PAGE 3 112 1 ///Lc_buf_from_const_uc(U8 * d, const U8 * s, U16 num) 113 1 ///tst_weight.pSPara->ts_WPoint 114 1 } 115 116 #define D_debug_ch D_Wch2 117 ///L3_task_weight_handler(&tst_weight); 118 void L3_task_weight_handler(TS_TASK_weight_ *s) 119 { 120 1 L2_task_adc_sample(&ts_adc_samples[D_Wch1]); 121 1 122 1 L2_task_adc_sample(&ts_adc_samples[D_Wch2]); 123 1 124 1 L2_task_adc_sample(&ts_adc_samples[D_Wch3]); 125 1 126 1 L2_task_adc_sample(&ts_adc_samples[D_Wch4]); 127 1 128 1 TTSS_Task_init(): 129 2 L0_waitFree_uartN(0); 130 2 131 2 /* 132 2 printf("\r\nR.sd.zeroout= %d = 0x%4x offset %d = 0x%4x", R.sd.zeroout, R.sd.zeroout,ts_adc_samples[0]. -offset,ts_adc_samples[0].offset); 133 2 printf("\r\nR.sd.zeroout= %d = 0x%4x offset %d = 0x%4x", R.sd.zeroout, R.sd.zeroout,ts_adc_samples[1]. -offset,ts_adc_samples[1].offset); 134 2 printf("\r\nR.sd.zeroout= %d = 0x%4x offset %d = 0x%4x", R.sd.zeroout, R.sd.zeroout,ts_adc_samples[2]. -offset,ts_adc_samples[2].offset); 135 2 printf("\r\nR.sd.zeroout= %d = 0x%4x offset %d = 0x%4x", R.sd.zeroout, R.sd.zeroout,ts_adc_samples[3]. -offset,ts_adc_samples[3].offset); 136 2 137 2 printf('4'); 138 2 139 2 */ 140 2 s->slow = 0; 141 2 s->zero = 0;s->kgx10_zero = 0; 142 2 printfs(" L3_task_weight_handler "); 143 2 144 2 L2_task_go(D_task_WEIGHT_get); 145 2 TTSS_Task_step(D_task_WEIGHT_get): 146 2 if(1 == ts_adc_samples[D_Wch4].ok) 147 2 {// 148 3 ts_adc_samples[0].ok = 0; 149 3 ts_adc_samples[1].ok = 0; 150 3 ts_adc_samples[2].ok = 0; 151 3 ts_adc_samples[3].ok = 0; 152 3 s->slow ++; 153 3 // L0_uart0_uc('%'); 154 3 L2_task_go(D_task_WEIGHT_Sline); 155 3 } 156 2 TTSS_Task_step(D_task_WEIGHT_Sline): 157 2 if (s->slow >= 1)////采样减速 158 2 {s->slow = 0; 159 3 ///调用asp——adc中的输出 out3 160 3 /************/ 161 3 ///cc 2023/04/06--8:9:18 选择使用哪一条滤波线 162 3 163 3 ts_adc_samples[0].out5 = ts_adc_samples[0].ts_SAa.out4_shift; 164 3 ts_adc_samples[1].out5 = ts_adc_samples[1].ts_SAa.out4_shift; 165 3 ts_adc_samples[2].out5 = ts_adc_samples[2].ts_SAa.out4_shift; 166 3 ts_adc_samples[3].out5 = ts_adc_samples[3].ts_SAa.out4_shift; 167 3 168 3 L2_task_go(D_task_WEIGHT_getADC); 169 3 }else C51 COMPILER V9.54 APP_WEIGHT 09/06/2024 11:24:44 PAGE 4 170 2 { 171 3 L2_task_go(D_task_WEIGHT_get); 172 3 } 173 2 //L2_task_go(D_task_WEIGHT_getADC); 174 2 TTSS_Task_step(D_task_WEIGHT_getADC): 175 2 176 2 177 2 ////四个传感器相加后平均 178 2 tst_weight.sum32 = ts_adc_samples[0].out5; 179 2 tst_weight.sum32 += ts_adc_samples[1].out5; 180 2 tst_weight.sum32 += ts_adc_samples[2].out5; 181 2 tst_weight.sum32 += ts_adc_samples[3].out5; 182 2 183 2 tst_weight.out6 = tst_weight.sum32 >>2; 184 2 185 2 L2_task_go(D_task_WEIGHT_CAL); 186 2 TTSS_Task_step(D_task_WEIGHT_CAL): 187 2 188 2 tst_weight.adc32 = tst_weight.out6; 189 2 190 2 L3_task_weight_cal(); 191 2 192 2 L2_task_go(D_task_WEIGHT_out); 193 2 TTSS_Task_step(D_task_WEIGHT_out): 194 2 if(tst_weight.kgx10 > tst_weight.kgx10_zero) 195 2 { 196 3 s->kgx10_out = s->kgx10 - s->kgx10_zero; 197 3 }else 198 2 { 199 3 s->kgx10_out = 0 ; 200 3 } 201 2 //// D_LED1_REV(); L4_weight_out(); D_LED1_REV(); 202 2 203 2 204 2 205 2 /// L4_weight_print();///需要调试的时候打开!!!!!!!!!!!!!!! 206 2 L2_task_Tdelay_go(D_Tdelay_200ms, D_task_WEIGHT_get); 207 2 /// L2_task_go(D_task_WEIGHT_get); 208 2 TTSS_Task_step(D_task_WEIGHT_zero): 209 2 210 2 211 2 L2_task_go(D_task_WEIGHT_get); 212 2 TTSS_Task_end(); 213 1 } 214 215 216 void L3_task_weight_cal(void) 217 { 218 1 if(tst_weight.adc32 <= (vU32)S.weight_SPara.ts_WPoint[1].adc) 219 1 { 220 2 if(tst_weight.adc32 <= (vU32)S.weight_SPara.ts_WPoint[0].adc ) 221 2 { 222 3 tst_weight.adc32 = (vU32)S.weight_SPara.ts_WPoint[0].adc; 223 3 } 224 2 ///0-0-40KG 225 2 tst_weight.t32a = (tst_weight.adc32-(vU32)S.weight_SPara.ts_WPoint[0].adc);////有可能<0 226 2 tst_weight.t32b = (vU32)(S.weight_SPara.ts_WPoint[1].adc-S.weight_SPara.ts_WPoint[0].adc); 227 2 tst_weight.t32a *= (vU32)(S.weight_SPara.ts_WPoint[1].kg - S.weight_SPara.ts_WPoint[0].kg); 228 2 tst_weight.t32a /= tst_weight.t32b; 229 2 230 2 }else 231 1 { ///40KG 80KG C51 COMPILER V9.54 APP_WEIGHT 09/06/2024 11:24:44 PAGE 5 232 2 tst_weight.t32a = (vU32)(tst_weight.adc32-S.weight_SPara.ts_WPoint[1].adc);////有可能大于b 233 2 tst_weight.t32b = (vU32)(S.weight_SPara.ts_WPoint[2].adc-S.weight_SPara.ts_WPoint[1].adc); 234 2 tst_weight.t32a *= (vU32)(S.weight_SPara.ts_WPoint[2].kg-S.weight_SPara.ts_WPoint[1].kg) ; 235 2 tst_weight.t32a /= tst_weight.t32b; 236 2 tst_weight.t32a += (vU32)S.weight_SPara.ts_WPoint[1].kg; 237 2 238 2 } 239 1 tst_weight.kgx10 = (vU16)tst_weight.t32a; 240 1 } 241 242 /* 243 244 #define D_0kg 0 245 #define D_20kg 200///0x00c8 246 #define D_85kg 850////0x0352 247 248 #define D_Rsensor_out_D_0kg 0x18D9 249 #define D_Rsensor_out_D_20kg 0x1B8B 250 #define D_Rsensor_out_D_85kg 0x244D 251 252 */ 253 254 #if 0 void L3_weight_ONdebug(u8 filter)//// ON listen function { if(filter == pd->filter) { ///filter num d1 d2 d3 ....dn ////FE 08 11 22 33 44 55 66 77 88 ///printf("\r\nDdebug:FD R1 R2 R3 R4 R5 R6 ocr FD->"); ///printf4("22 ch:(%2X)-%2X S %2X=%2X\r\n",(int)pd->R1,(int)pd->R2,(int)pd->R3,(int)pd->ocr); L1_uartD_Arrayhex((u8*)pd,9); switch (pd->ocr) { case 0x20: ////选择一个砝码,发送0x12指令,然后读取的数据 和砝码的重量使用 20 21 22参 -数来 ///fx R1 R2 R3R4 R5R6 ocr ///Fe ch 00 2233 4455 20 0x2233 kg= 0x4455 adc ///Fe 00 00 0000 18D9 20 ///Fe 01 00 00c8 1c2c 20 ///Fe 02 00 0352 26f9 20 /// 0352 26f9 ///00c8 1c2c ///Fe 22 33 44 55 21 ///Fe 22 33 44 55 22 if(pd->R1 < 3) ts_weight_SPara.ts_WPoint[pd->R1].kg = D_2uc_u16(pd->R3,pd->R4); ts_weight_SPara.ts_WPoint[pd->R1].adc = D_2uc_u16(pd->R5,pd->R6); printf5("\r\nset %d: %4x(%6d) %4x(%6d)\r\n",(int)pd->R1, ts_weight_SPara.ts_WPoint[pd->R1].kg,ts_weight_SPara.ts_WPoint[pd->R1].kg, ts_weight_SPara.ts_WPoint[pd->R1].adc,ts_weight_SPara.ts_WPoint[pd->R1].adc); { } L3_R_2_S(); L0_Iap_Program_array(D_EEP_BASE,D_struct2U8(S),D_S_LEN); break; case 0x35: ///// '5'/// ////选择一个砝码,发送0x12指令,然后读取的数据 和砝码的重量使用 20 21 22参 -数来 C51 COMPILER V9.54 APP_WEIGHT 09/06/2024 11:24:44 PAGE 6 ///fx R1 R2 R3R4 R5R6 ocr ///Fe ch 00 2233 4455 35 kg= 0x2233 ////校准20kg 输入 Fe 01 00 00 c8 02 00 35 ///Fe 01 00 00 c8 02 00 35 kg= 0x00c8=200d///需要校准的重量的 20kg 200d=0xc8 ///校准20kg 输入 Fe 01 00 00 c8 02 00 35 /// Fe 00 00 00 00 01 00 35 校准零点 不需要上电即可 /// Fe 01 00 00 c8 02 00 35 20kg 放置20kg 然后输入 /// Fe 02 00 01 d6 03 00 35 47kg 10个3kg砝码实际是27kg+20kg ////如果需要上位机设置 需要在上位机的串口 加上D4 D代表chuandi if(pd->R1 < 3) { ts_weight_SPara.ts_WPoint[pd->R1].kg = D_2uc_u16(pd->R3,pd->R4); ts_weight_SPara.ts_WPoint[pd->R1].adc = tst_weight.adc32;////使用当前采样值 printf5("\r\nset %d: %4x(%6d) %4x(%6d)\r\n",(int)pd->R1, ts_weight_SPara.ts_WPoint[pd->R1].kg,ts_weight_SPara.ts_WPoint[pd->R1].kg, ts_weight_SPara.ts_WPoint[pd->R1].adc,ts_weight_SPara.ts_WPoint[pd->R1].adc); } L3_R_2_S(); L0_Iap_Program_array(D_EEP_BASE,D_struct2U8(S),D_S_LEN); break; case 0x21: /// 清零指令 把当前的重量值作为0点; 可以在pad上配置参数 ////Fe 223344556677 21 L4_weight_print(); tst_weight.kgx10_zero = tst_weight.kgx10; printf2("\r\n kgx10_zero= %4x(%4d)",tst_weight.kgx10_zero,tst_weight.kgx10_zero); break; case 0x23: ///Fe 11 22 33 44 55 66 23 TTSS_run_times(3) { printf5("\r\n%d: %4x(%4d ) %4x(%6d)\r\n",(int)tst_v.i, ts_weight_SPara.ts_WPoint[tst_v.i].kg,ts_weight_SPara.ts_WPoint[tst_v.i].kg, ts_weight_SPara.ts_WPoint[tst_v.i].adc,ts_weight_SPara.ts_WPoint[tst_v.i].adc); } break; case 0x32: ///读取当前的重量和传感器数值 ///Fe 223344556677 12 printfs("\r\n "); L4_weight_print(); break; case 0x33: ///读取当前的重量和传感器数值 hex ///Fe 223344556677 12 D_LED1_REV(); L4_weight_out(); D_LED1_REV(); break; default: printfs(" pp error\r\n "); break; }; printfs("333"); } C51 COMPILER V9.54 APP_WEIGHT 09/06/2024 11:24:44 PAGE 7 } #else 357 void L3_weight_ONdebug(u8 filter)//// ON listen function 358 { 359 1 // printf(" \r\n0->filter=%X ", (int)filter); 360 1 // printf(" \r\n1->filter=%X slaveId=%X cmd=%X len = %d ", (int)pd485->filter,(int)pd485->slaveId, (int)p -d485->cmd, (int)ts_Urec[D_UART1].num); 361 1 // D_LED2_REV(); 362 1 if(filter == pd485->filter) 363 1 { 364 2 // L1_uartD_Arrayhex((u8*)pd,9); 365 2 switch (pd485->cmd) 366 2 { 367 3 case 0x10: 368 3 ////读取称重 369 3 D_LED1_REV(); 370 3 L4_weight_out(); 371 3 D_LED1_REV(); 372 3 break; 373 3 374 3 case 0x20: 375 3 ///// 校准 376 3 ////选择一个砝码,发送0x12指令,然后读取的数据 和砝码的重量使用 20 21 22参 -数来 377 3 ///fx R1 R2 R3R4 R5R6 ocr 378 3 ///Fe ch 00 2233 4455 35 kg= 0x2233 379 3 380 3 ////校准20kg 输入 Fe 01 00 00 c8 02 00 35 381 3 ///Fe 01 00 00 c8 02 00 35 kg= 0x00c8=200d///需要校准的重量的 20kg 200d=0xc8 382 3 ///校准20kg 输入 Fe 01 00 00 c8 02 00 35 383 3 384 3 /// Fe 00 00 00 00 01 00 35 校准零点 不需要上电即可 385 3 /// Fe 01 00 00 c8 02 00 35 20kg 放置20kg 然后输入 386 3 /// Fe 02 00 01 d6 03 00 35 47kg 10个3kg砝码实际是27kg+20kg 387 3 ////如果需要上位机设置 需要在上位机的串口 加上D4 D代表chuandi 388 3 389 3 //AA 02 20 00 03 pIndex kgx10_0 kgx10_1 ocr 对pIndex(0/1/2)点进行校准,校准值为kgx10 390 3 if(pd485->buf[0] < 3) 391 3 { 392 4 ts_weight_SPara.ts_WPoint[pd485->buf[0]].kg = D_2uc_u16(pd485->buf[1],pd485->buf[2]); 393 4 ts_weight_SPara.ts_WPoint[pd485->buf[0]].adc = tst_weight.adc32;////使用当前采样值 394 4 395 4 // printf5("\r\nset %d: %4x(%6d) %4x(%6d)\r\n",(int)pd->R1, 396 4 // ts_weight_SPara.ts_WPoint[pd->R1].kg,ts_weight_SPara.ts_WPoint[pd->R1].kg, 397 4 // ts_weight_SPara.ts_WPoint[pd->R1].adc,ts_weight_SPara.ts_WPoint[pd->R1].adc); 398 4 D_LED1_REV(); 399 4 L4_WPoint_out(); 400 4 D_LED1_REV(); 401 4 402 4 //写入IAP 403 4 L3_R_2_S(); 404 4 L0_Iap_Program_array(D_EEP_BASE,D_struct2U8(S),D_S_LEN); 405 4 } 406 3 407 3 break; 408 3 409 3 case 0x30: 410 3 /// 清零指令 把当前的重量值作为0点; 可以在pad上配置参数 411 3 ////Fe 223344556677 21 412 3 //L4_weight_print(); 413 3 tst_weight.kgx10_zero = tst_weight.kgx10; C51 COMPILER V9.54 APP_WEIGHT 09/06/2024 11:24:44 PAGE 8 414 3 //printf2("\r\n kgx10_zero= %4x(%4d)",tst_weight.kgx10_zero,tst_weight.kgx10_zero); 415 3 416 3 D_LED1_REV(); 417 3 L4_kgx10zero_out(); 418 3 D_LED1_REV(); 419 3 420 3 break; 421 3 422 3 case 0x40: 423 3 ///Fe 11 22 33 44 55 66 23 424 3 TTSS_run_times(3) 425 3 { 426 4 printf5("\r\n%d: %4x(%4d ) %4x(%6d)\r\n",(int)tst_v.i, 428 4 ts_weight_SPara.ts_WPoint[tst_v.i].kg,ts_weight_SPara.ts_WPoint[tst_v.i].kg, 428 4 ts_weight_SPara.ts_WPoint[tst_v.i].adc,ts_weight_SPara.ts_WPoint[tst_v.i].adc); 429 4 } 430 3 break; 431 3 432 3 case 0x50: ///读取当前的重量和传感器数值 433 3 ///Fe 223344556677 12 434 3 printfs("\r\n "); 435 3 L4_weight_print(); 436 3 break; 437 3 438 3 default: 439 3 printfs(" pp error\r\n "); 440 3 break; 441 3 }; 442 2 } 443 1 } 444 #endif 445 446 447 void L4_weight_print(void) 448 { 449 1 L1_uartD_ushex(ts_adc_samples[0].out1_adc);L1_uartD_uc(' '); 450 1 L1_uartD_ushex(ts_adc_samples[1].out1_adc);L1_uartD_uc(' '); 451 1 L1_uartD_ushex(ts_adc_samples[2].out1_adc);L1_uartD_uc(' '); 452 1 L1_uartD_ushex(ts_adc_samples[3].out1_adc);L1_uartD_uc(' '); 453 1 454 1 /* L1_uartD_uc('|');L1_uartD_uc(' '); 455 1 L1_uartD_ushex(ts_adc_samples[0].out2_offset);L1_uartD_uc(' ');////调整偏移量后的值 456 1 L1_uartD_ushex(ts_adc_samples[1].out2_offset);L1_uartD_uc(' '); 457 1 L1_uartD_ushex(ts_adc_samples[2].out2_offset);L1_uartD_uc(' '); 458 1 L1_uartD_ushex(ts_adc_samples[3].out2_offset);L1_uartD_uc(' '); 459 1 460 1 L1_uartD_ushex(ts_adc_samples[0].out5);L1_uartD_uc(' ');////调整偏移量后的值 461 1 L1_uartD_ushex(ts_adc_samples[1].out5);L1_uartD_uc(' '); 462 1 L1_uartD_ushex(ts_adc_samples[2].out5);L1_uartD_uc(' '); 463 1 L1_uartD_ushex(ts_adc_samples[3].out5);L1_uartD_uc(' '); 464 1 465 1 */ 466 1 467 1 L1_uartD_uc('|');L1_uartD_uc(' '); 468 1 L1_uartD_ushex((vU16)tst_weight.adc32); L1_uartD_uc(' ');///参与运算的值 469 1 printf2(" (%d)%4x ", tst_weight.kgx10,tst_weight.kgx10); 470 1 printf2("out (%d)%4x\r\n", tst_weight.kgx10_out,tst_weight.kgx10_out); 471 1 } 472 473 474 475 C51 COMPILER V9.54 APP_WEIGHT 09/06/2024 11:24:44 PAGE 9 476 #if 0 TS_weight_out_ ts_weight_out; void L4_weight_out(void) { ts_weight_out.fx = 0x55; ts_weight_out.sensor_adc[0]=ts_adc_samples[0].out1_adc; ts_weight_out.sensor_adc[1]=ts_adc_samples[1].out1_adc; ts_weight_out.sensor_adc[2]=ts_adc_samples[2].out1_adc; ts_weight_out.sensor_adc[3]=ts_adc_samples[3].out1_adc; ts_weight_out.kgx10_out = tst_weight.kgx10_out; ts_weight_out.adc32= tst_weight.adc32;////采样值用作校准时使用 ts_weight_out.ocr =0x33; #if 0 ts_weight_out.num = 17; #else ts_weight_out.num = 15; #endif ts_weight_out.out6= tst_weight.out6; L1_uartD_Array((u8 *)&ts_weight_out,ts_weight_out.num); } #else 501 502 TS_weight_out_ ts_weight_out; 503 void L4_weight_out(void) 504 { 505 1 U8 dnum = 12, total = 18; 506 1 ts_weight_out.filter = 0xAA; 507 1 ts_weight_out.slaveId = 0x02; 508 1 ts_weight_out.cmd = 0x10; 509 1 ts_weight_out.num[0] = (dnum >> 8) & 0xFF; 510 1 ts_weight_out.num[1] = dnum & 0xFF; 511 1 ts_weight_out.sensor_adc[0]=ts_adc_samples[0].out1_adc; 512 1 ts_weight_out.sensor_adc[1]=ts_adc_samples[1].out1_adc; 513 1 ts_weight_out.sensor_adc[2]=ts_adc_samples[2].out1_adc; 514 1 ts_weight_out.sensor_adc[3]=ts_adc_samples[3].out1_adc; 515 1 ts_weight_out.kgx10_out = tst_weight.kgx10_out; 516 1 ts_weight_out.adc32= tst_weight.adc32;////采样值用作校准时使用 517 1 ts_weight_out.ocr =0x33; 518 1 L1_uartD_Array((u8 *)&ts_weight_out,total); 519 1 } 520 521 TS_WPoint_out_ ts_wpoint_out; 522 void L4_WPoint_out(void) 523 { 524 1 U8 dnum = 12, total = 18; 525 1 ts_wpoint_out.filter = 0xAA; 526 1 ts_wpoint_out.slaveId = 0x02; 527 1 ts_wpoint_out.cmd = 0x20; 528 1 ts_wpoint_out.num[0] = (dnum >> 8) & 0xFF; 529 1 ts_wpoint_out.num[1] = dnum & 0xFF; 530 1 Lc_buf_from_const_uc(ts_wpoint_out.wpoint, S.weight_SPara.ts_WPoint , sizeof(S.weight_SPara.ts_WPoint)); *** WARNING C182 IN LINE 530 OF ..\source\app\app_weight.c: pointer to different objects *** WARNING C182 IN LINE 530 OF ..\source\app\app_weight.c: pointer to different objects 531 1 ts_wpoint_out.ocr =0x33; 532 1 L1_uartD_Array((u8 *)&ts_wpoint_out,total); 533 1 } 534 535 C51 COMPILER V9.54 APP_WEIGHT 09/06/2024 11:24:44 PAGE 10 536 TS_Kgx10zero_out_ ts_kgx10zero_out; 537 void L4_kgx10zero_out(void) 538 { 539 1 U8 dnum = 2, total = 8; 540 1 ts_kgx10zero_out.filter = 0xAA; 541 1 ts_kgx10zero_out.slaveId = 0x02; 542 1 ts_kgx10zero_out.cmd = 0x30; 543 1 ts_kgx10zero_out.num[0] = (dnum >> 8) & 0xFF; 544 1 ts_kgx10zero_out.num[1] = dnum & 0xFF; 545 1 ts_kgx10zero_out.kgx10zero[0] = tst_weight.kgx10_zero >> 8 & 0xFF; 546 1 ts_kgx10zero_out.kgx10zero[1] = tst_weight.kgx10_zero >> 0 & 0xFF; 547 1 ts_kgx10zero_out.ocr =0x33; 548 1 L1_uartD_Array((u8 *)&ts_kgx10zero_out,total); 549 1 } 550 551 #endif 552 553 MODULE INFORMATION: STATIC OVERLAYABLE CODE SIZE = 2553 ---- CONSTANT SIZE = 96 ---- XDATA SIZE = 123 ---- 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. 3 WARNING(S), 0 ERROR(S)