|
|
|
C51 COMPILER V9.54 APP_CONFIG 09/06/2024 14:31:10 PAGE 1
|
|
|
|
|
|
|
|
|
|
|
|
C51 COMPILER V9.54, COMPILATION OF MODULE APP_CONFIG
|
|
|
|
OBJECT MODULE PLACED IN ..\out\app_config.obj
|
|
|
|
COMPILER INVOKED BY: E:\KeilC51\C51\BIN\C51.EXE ..\source\app\app_config.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_config.lst) TABS(2) OBJECT(..\out\app_config.obj)
|
|
|
|
|
|
|
|
line level source
|
|
|
|
|
|
|
|
1 #include "app_config.h"
|
|
|
|
*** WARNING C320 IN LINE 51 OF ..\source\bsp\TTSSbsp\bsp_config.h: "MainFre_22M"
|
|
|
|
2 //#include "../tpc/tpc_uart.h"
|
|
|
|
3 ///#include "../bsp/bsp_cs1232.h"
|
|
|
|
4 #include "msp_eeprom.h"
|
|
|
|
5 ///#include "../msp/msp_id.h"
|
|
|
|
6 #include "debug_drv.h"
|
|
|
|
7 #include "msp_uartN.h"
|
|
|
|
8
|
|
|
|
9 TS_GlobalRegisterSave_ S;
|
|
|
|
10 ////TS_GlobalParam_ G;
|
|
|
|
11
|
|
|
|
12 void L3_R_2_S(void)
|
|
|
|
13 {
|
|
|
|
14 1 TTSS_run_times(4)////tst_v.i
|
|
|
|
15 1 { ////ts_adc_samples[tst_v.i].pSPara = &TS_adc_SPara[tst_v.i];
|
|
|
|
16 2 Lc_buf_from_const_uc(D_struct2U8(S.adc_SPara[tst_v.i]),D_struct2U8(TS_adc_SPara[tst_v.i]),D_TS_adc_SPara
|
|
|
|
-_LEN);
|
|
|
|
17 2 }
|
|
|
|
18 1 ///tst_weight.pSPara = &ts_weight_SPara;
|
|
|
|
19 1 Lc_buf_from_const_uc(D_struct2U8(S.weight_SPara),D_struct2U8(ts_weight_SPara),D_TS_weight_SPara_len);
|
|
|
|
20 1 }
|
|
|
|
21 void L3_S_2_R(void)
|
|
|
|
22 {
|
|
|
|
23 1 TTSS_run_times(4)////tst_v.i
|
|
|
|
24 1 {
|
|
|
|
25 2 Lc_buf_from_const_uc(D_struct2U8(TS_adc_SPara[tst_v.i]),D_struct2U8(S.adc_SPara[tst_v.i]),D_TS_adc_SPara
|
|
|
|
-_LEN);
|
|
|
|
26 2 ts_adc_samples[tst_v.i].pSPara = &TS_adc_SPara[tst_v.i];
|
|
|
|
27 2 }
|
|
|
|
28 1 ///
|
|
|
|
29 1 Lc_buf_from_const_uc(D_struct2U8(ts_weight_SPara),D_struct2U8(S.weight_SPara),D_TS_weight_SPara_len);
|
|
|
|
30 1 tst_weight.pSPara = &ts_weight_SPara;
|
|
|
|
31 1 }
|
|
|
|
32
|
|
|
|
33 #define D_0xaa55 0xaa55
|
|
|
|
34
|
|
|
|
35 ////返回0 并打印 ("\r\nSpara ok ");
|
|
|
|
36 /// 返回非零 为错误次数 最后一次ok
|
|
|
|
37 /// 返回100 严重错误 一次没有成功
|
|
|
|
38 vtype L3_S_init(void)
|
|
|
|
39 {
|
|
|
|
40 1 vtype ovt = 0;
|
|
|
|
41 1 ////
|
|
|
|
42 1 /*
|
|
|
|
43 1
|
|
|
|
44 1 存错的多个写法:
|
|
|
|
45 1 使用三个区域,增加一致性判定的写法
|
|
|
|
46 1 使用一个区域,容错一次的写法
|
|
|
|
47 1
|
|
|
|
48 1
|
|
|
|
49 1 step 1 上电读取eeprom参数,
|
|
|
|
C51 COMPILER V9.54 APP_CONFIG 09/06/2024 14:31:10 PAGE 2
|
|
|
|
|
|
|
|
50 1 step 2 如果标志位数据不对,把每个任务中的spara初始化放到S 中,然后写入eeprom
|
|
|
|
-,返回step 1
|
|
|
|
51 1 如果重试次数溢出 打印错误信息;严重警告 系统不可用
|
|
|
|
52 1 step 3 如果标志位数据ok 退出
|
|
|
|
53 1 TTSS_run_times(4)////tst_v.i
|
|
|
|
54 1 { ////ts_adc_samples[tst_v.i].pSPara = &TS_adc_SPara[tst_v.i];
|
|
|
|
55 1 Lc_buf_from_const_uc(D_struct2U8(S.adc_SPara[tst_v.i]),D_struct2U8(&TS_adc_SPara[tst_v.i]),D_TS_adc_SPara
|
|
|
|
-_LEN);
|
|
|
|
56 1 }
|
|
|
|
57 1
|
|
|
|
58 1 ///tst_weight.pSPara = &ts_weight_SPara;
|
|
|
|
59 1 Lc_buf_from_const_uc(D_struct2U8(S.weight_SPara),D_struct2U8(&ts_weight_SPara),D_TS_weight_SPara_len);
|
|
|
|
60 1
|
|
|
|
61 1
|
|
|
|
62 1 */
|
|
|
|
63 1 do{
|
|
|
|
64 2 L0_Iap_Read_array(D_EEP_BASE,D_struct2U8(S),D_S_LEN);
|
|
|
|
65 2 printf1("\r\nread S: %d ",(int)ovt);
|
|
|
|
66 2 L1_uartD_Arrayhex(D_struct2U8(S),D_S_LEN);
|
|
|
|
67 2
|
|
|
|
68 2 if(0xaa55 == S.d0xaa55)
|
|
|
|
69 2 {////>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>和应用强相关
|
|
|
|
70 3 L3_S_2_R();
|
|
|
|
71 3 ////<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<和应用强相关
|
|
|
|
72 3 printfs("\r\nSpara ok ");
|
|
|
|
73 3 return ovt;
|
|
|
|
74 3 }else
|
|
|
|
75 2 {
|
|
|
|
76 3 S.d0xaa55 = D_0xaa55;
|
|
|
|
77 3 printf1("\r\nProg %x",S.d0xaa55);
|
|
|
|
78 3 L3_R_2_S();
|
|
|
|
79 3 L0_Iap_Program_array(D_EEP_BASE,D_struct2U8(S),D_S_LEN);
|
|
|
|
80 3 }
|
|
|
|
81 2 }while(ovt ++< 2);
|
|
|
|
82 1 return 100;
|
|
|
|
83 1 }
|
|
|
|
84
|
|
|
|
85 /*
|
|
|
|
86 void L3_param_init(void)
|
|
|
|
87 {
|
|
|
|
88 int i;
|
|
|
|
89 for(i=0;i<D_ch_max_num;i++)
|
|
|
|
90 {
|
|
|
|
91 G.weight[i] = 0;
|
|
|
|
92 }
|
|
|
|
93 G.allweight = 0;
|
|
|
|
94 G._total_weight = 0;
|
|
|
|
95 G._total_zweight = 0;
|
|
|
|
96
|
|
|
|
97 //L3_eeprom_read_param();
|
|
|
|
98 }
|
|
|
|
99
|
|
|
|
100 */
|
|
|
|
101
|
|
|
|
102 ///出厂参数 向 保存参数
|
|
|
|
103 void L3_S(void)
|
|
|
|
104 {
|
|
|
|
105 1
|
|
|
|
106 1
|
|
|
|
107 1 /// Lc_buf_copy_uc((u8 *)&R.sd,(u8 *)&iapData,20);
|
|
|
|
108 1 //写入eeprom
|
|
|
|
109 1 /// if(L1_eeprom_write((U8*)&iapData,sizeof(TS_GlobalRegisterSave_)) == 0)
|
|
|
|
C51 COMPILER V9.54 APP_CONFIG 09/06/2024 14:31:10 PAGE 3
|
|
|
|
|
|
|
|
110 1 {
|
|
|
|
111 2 // L0_uart0_sendstr("e2p write success");
|
|
|
|
112 2 }
|
|
|
|
113 1 }
|
|
|
|
114
|
|
|
|
115 ////把当前任务中的数据放入到保存参数(一般是eeprom
|
|
|
|
116 void L2_para_2_S(TS_para_ *t)
|
|
|
|
117 {////void L0_Iap_Program_array(vU16 addr,U8 *buf,U8 len)
|
|
|
|
118 1 /// L0_Iap_Program_array(t->add,);
|
|
|
|
119 1
|
|
|
|
120 1 }
|
|
|
|
*** WARNING C280 IN LINE 116 OF ..\source\app\app_config.c: 't': unreferenced local variable
|
|
|
|
121
|
|
|
|
122
|
|
|
|
123
|
|
|
|
124 //读取iap内容,写入reg
|
|
|
|
125 void L3_iap_2_reg(void)
|
|
|
|
126 {
|
|
|
|
127 1
|
|
|
|
128 1 /*
|
|
|
|
129 1
|
|
|
|
130 1
|
|
|
|
131 1 U8 len = 0,i = 0;
|
|
|
|
132 1 if(L1_eeprom_read((U8*)&iapData,&len) == 1)
|
|
|
|
133 1 {
|
|
|
|
134 1 L0_uart0_sendstr("e2p read failed\r\n");
|
|
|
|
135 1 return;
|
|
|
|
136 1 }
|
|
|
|
137 1 L0_uart0_sendstr("e2p read success\r\n");
|
|
|
|
138 1
|
|
|
|
139 1 Lc_buf_copy_uc((u8 *)&iapData,(u8 *)&R.sd,20);
|
|
|
|
140 1
|
|
|
|
141 1 */
|
|
|
|
142 1
|
|
|
|
143 1 }
|
|
|
|
144
|
|
|
|
145 /*********
|
|
|
|
146
|
|
|
|
147
|
|
|
|
148 int L3_mcu_id_ok(void)
|
|
|
|
149 {
|
|
|
|
150 U8 i = 0,crc[2];
|
|
|
|
151 U32 enc_key;
|
|
|
|
152 //1.获取MCU_ID
|
|
|
|
153 L0_id_get_rom(G.e.mcu_id);
|
|
|
|
154 for(i=0;i<MCU_ID_LEN;i++)
|
|
|
|
155 {
|
|
|
|
156 L0_uart0_uchex(G.e.mcu_id[i]);
|
|
|
|
157 }
|
|
|
|
158
|
|
|
|
159 //2.读取eeprom中的加密信息
|
|
|
|
160 L0_Iap_Read_array(EEP_ENC_ADDR, (U8*)&eep_enc, MCU_ID_KEY_LEN + MCU_ID_LEN + 2);
|
|
|
|
161 crc16(crc,(U8*)&eep_enc,MCU_ID_KEY_LEN + MCU_ID_LEN);
|
|
|
|
162 if(eep_enc.crc[0] != crc[0] || eep_enc.crc[1] != crc[1])
|
|
|
|
163 {
|
|
|
|
164 L0_uart0_uc('-');
|
|
|
|
165 return 0;
|
|
|
|
166 }
|
|
|
|
167
|
|
|
|
168 //3.根据mcu_id和enc_key计算enc_val
|
|
|
|
169 enc_key = ((U32)eep_enc.enc_key[0] << 24) | (eep_enc.enc_key[1] << 16) | (eep_enc.enc_key[2] << 8) |(eep_
|
|
|
|
-enc.enc_key[3] << 0);
|
|
|
|
C51 COMPILER V9.54 APP_CONFIG 09/06/2024 14:31:10 PAGE 4
|
|
|
|
|
|
|
|
170 Lc_encrypt_id((U8*)G.e.mcu_enc_id, (U8*)G.e.mcu_id, enc_key, MCU_ID_LEN);
|
|
|
|
171
|
|
|
|
172 //4.判断enc_val是否一致
|
|
|
|
173 for(i=0;i<MCU_ID_KEY_LEN;i++)
|
|
|
|
174 {
|
|
|
|
175 if(G.e.mcu_enc_id[i] != eep_enc.enc_val[i])
|
|
|
|
176 {
|
|
|
|
177 return 0;
|
|
|
|
178 }
|
|
|
|
179 }
|
|
|
|
180 return 1;
|
|
|
|
181 }
|
|
|
|
182
|
|
|
|
183
|
|
|
|
184 **********/
|
|
|
|
185
|
|
|
|
186
|
|
|
|
187
|
|
|
|
188 #if 0
|
|
|
|
TS_EEPROM_ENC_ eep_enc;
|
|
|
|
|
|
|
|
void L0_reg_reset()
|
|
|
|
{/******
|
|
|
|
//R.p.reset = 0;
|
|
|
|
R.p.adc_ch_status = ADC_status_ch1_Ready | ADC_status_ch2_Ready | ADC_status_ch3_Ready | ADC_status_ch4_R
|
|
|
|
-eady; //修改采集通道
|
|
|
|
R.p.slaver_id = D_UART0_485_SLAVER_ID;
|
|
|
|
R.zero = 0;
|
|
|
|
R.status_eep_save = 0;
|
|
|
|
// R.reset = 0;
|
|
|
|
R.p.weight_max = 150; //500kg
|
|
|
|
R.p.lmd = 15; //2mv/v
|
|
|
|
|
|
|
|
R.p.adc_blur_mid = 1;
|
|
|
|
R.p.adc_blur_avg = 6;
|
|
|
|
R.p.adc_blur_shift[0] = 0;
|
|
|
|
R.p.adc_blur_shift[1] = 2;
|
|
|
|
R.p.adc_blur_shift[2] = 4;
|
|
|
|
R.p.adc_blur_threshold[0] = 1600; //1.6kg
|
|
|
|
R.p.adc_blur_threshold[1] = 700; //0.7kg
|
|
|
|
*********/
|
|
|
|
|
|
|
|
///L3_reg_2_iap();
|
|
|
|
}
|
|
|
|
|
|
|
|
void L0_reg_init(void)
|
|
|
|
{
|
|
|
|
R.sd.rev0x55aa55aa = 0x55aa55aa;
|
|
|
|
//R.total_weight = R.total_zweight = 0;
|
|
|
|
///L0_reg_reset();
|
|
|
|
L4_iap_2_reg();
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
S32 L3_count_std_weight(S32 weight)
|
|
|
|
{
|
|
|
|
U8 i = 0;
|
|
|
|
U16 ratio = 100;
|
|
|
|
weight = (weight - G._total_zweight)/10;
|
|
|
|
C51 COMPILER V9.54 APP_CONFIG 09/06/2024 14:31:10 PAGE 5
|
|
|
|
|
|
|
|
for(i=0;i<D_weight_std_num;i++)
|
|
|
|
{
|
|
|
|
if(R.p.weight_std[i].weight_range == 0 || (R.p.weight_std[i].weight_range * 100) >= weight)
|
|
|
|
{
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
if(i<D_weight_std_num && R.p.weight_std[i].ratio != 0)
|
|
|
|
{
|
|
|
|
ratio = R.p.weight_std[i].ratio;
|
|
|
|
}
|
|
|
|
return (S32)(weight * 1.0 * ratio / 100) ;
|
|
|
|
}
|
|
|
|
#endif
|
|
|
|
245
|
|
|
|
246
|
|
|
|
247
|
|
|
|
248 void L0_main_lowp(void)
|
|
|
|
249 {//
|
|
|
|
250 1
|
|
|
|
251 1
|
|
|
|
252 1 BITN_1(P_SW2 ,BITN7);USBCON = 0;
|
|
|
|
253 1
|
|
|
|
254 1 D_stdIO_P0_ALL();
|
|
|
|
255 1
|
|
|
|
256 1 D_stdIO_P1_ALL();
|
|
|
|
257 1 D_stdIO_P2_ALL();
|
|
|
|
258 1 D_stdIO_P3_ALL();
|
|
|
|
259 1 D_stdIO_P4_ALL();
|
|
|
|
260 1 D_stdIO_P5_ALL();
|
|
|
|
261 1
|
|
|
|
262 1
|
|
|
|
263 1
|
|
|
|
264 1
|
|
|
|
265 1
|
|
|
|
266 1 WKTCL = 0xff; //设定掉电唤醒时钟约为 1 秒钟 WKTCH = 0x87;
|
|
|
|
267 1
|
|
|
|
268 1 WKTCH = 0x87;
|
|
|
|
269 1 ///SetWakeUpTime(10000);
|
|
|
|
270 1
|
|
|
|
271 1 D_P24_REV();
|
|
|
|
272 1 Lc_delay_ms(500);
|
|
|
|
273 1 D_P24_REV();
|
|
|
|
274 1 Lc_delay_ms(500);
|
|
|
|
275 1 D_P24_REV();
|
|
|
|
276 1 Lc_delay_ms(500);
|
|
|
|
277 1
|
|
|
|
278 1 D_P24_ON();
|
|
|
|
279 1 P_SW2|=0x80;
|
|
|
|
280 1
|
|
|
|
281 1 P0PU = 0;
|
|
|
|
282 1 P1PU = 0;
|
|
|
|
283 1 P2PU = 0;
|
|
|
|
284 1 P3PU = 0;
|
|
|
|
285 1 P4PU = 0;
|
|
|
|
286 1 P5PU = 0;
|
|
|
|
287 1
|
|
|
|
288 1 P0SR =0xff;
|
|
|
|
289 1 P1SR =0xff;
|
|
|
|
290 1 P2SR =0xff;
|
|
|
|
291 1 P3SR =0xff;
|
|
|
|
292 1 P4SR =0xff;
|
|
|
|
C51 COMPILER V9.54 APP_CONFIG 09/06/2024 14:31:10 PAGE 6
|
|
|
|
|
|
|
|
293 1 P5SR =0xff;
|
|
|
|
294 1
|
|
|
|
295 1 P0DR =0xff;
|
|
|
|
296 1 P1DR =0xff;
|
|
|
|
297 1 P2DR =0xff;
|
|
|
|
298 1 P3DR =0xff;
|
|
|
|
299 1 P4DR =0xff;
|
|
|
|
300 1 P5DR =0xff;
|
|
|
|
301 1
|
|
|
|
302 1
|
|
|
|
303 1 P0IE =0;
|
|
|
|
304 1 P1IE =0;
|
|
|
|
305 1 P2IE =0;
|
|
|
|
306 1 P3IE =0;
|
|
|
|
307 1 P4IE =0;
|
|
|
|
308 1 P5IE =0;
|
|
|
|
309 1
|
|
|
|
310 1 USBCON = 0;
|
|
|
|
311 1 ///USBCON = 0x80;
|
|
|
|
312 1
|
|
|
|
313 1
|
|
|
|
314 1
|
|
|
|
315 1
|
|
|
|
316 1 D_HighR_P0_ALL();
|
|
|
|
317 1 D_HighR_P1_ALL();
|
|
|
|
318 1 D_HighR_P2_ALL();
|
|
|
|
319 1 D_HighR_P3_ALL();
|
|
|
|
320 1 D_HighR_P4_ALL();
|
|
|
|
321 1 D_HighR_P5_ALL();
|
|
|
|
322 1 P_SW2 = 0x80;
|
|
|
|
323 1 // XOSCCR =0;
|
|
|
|
324 1 ///HIRCCR = 0;
|
|
|
|
325 1 /*****
|
|
|
|
326 1
|
|
|
|
327 1 IRC32KCR = 0x80; //启动内部32K IRC
|
|
|
|
328 1 while (!(IRC32KCR & 1)); //等待时钟稳定
|
|
|
|
329 1 CLKDIV = 0x00; //时钟不分频
|
|
|
|
330 1 CLKSEL = 0x03; //选择内部32K
|
|
|
|
331 1 P_SW2 = 0x00;
|
|
|
|
332 1
|
|
|
|
333 1
|
|
|
|
334 1 D_stdIO_P0_ALL();
|
|
|
|
335 1 D_stdIO_P1_ALL();
|
|
|
|
336 1 D_stdIO_P2_ALL();
|
|
|
|
337 1 D_stdIO_P3_ALL();
|
|
|
|
338 1 D_stdIO_P4_ALL();
|
|
|
|
339 1 D_stdIO_P5_ALL();
|
|
|
|
340 1
|
|
|
|
341 1 P0 = 0xff;
|
|
|
|
342 1 P1 = 0xff;
|
|
|
|
343 1 P2 = 0xff;
|
|
|
|
344 1 P3 = 0xff;
|
|
|
|
345 1 P4 = 0xff;
|
|
|
|
346 1 P5 = 0xff;
|
|
|
|
347 1
|
|
|
|
348 1
|
|
|
|
349 1
|
|
|
|
350 1 *******/
|
|
|
|
351 1 RSTCFG=0;//没有变化43ua 41ua
|
|
|
|
352 1
|
|
|
|
353 1 while(9)
|
|
|
|
354 1 {
|
|
|
|
C51 COMPILER V9.54 APP_CONFIG 09/06/2024 14:31:10 PAGE 7
|
|
|
|
|
|
|
|
355 2
|
|
|
|
356 2 D_HighR_P2_ALL();
|
|
|
|
357 2
|
|
|
|
358 2
|
|
|
|
359 2
|
|
|
|
360 2
|
|
|
|
361 2
|
|
|
|
362 2 _nop_();
|
|
|
|
363 2 _nop_();
|
|
|
|
364 2
|
|
|
|
365 2 PCON = 0x02; ////2222 //MCU进入掉电模式
|
|
|
|
366 2 ///D_LPCD_INT_CLOSE(); 对掉电唤醒后有一个中断进来没有效果
|
|
|
|
367 2 _nop_();
|
|
|
|
368 2 _nop_(); _nop_();
|
|
|
|
369 2 _nop_(); _nop_();
|
|
|
|
370 2 _nop_();
|
|
|
|
371 2 /// D_P24_REV();
|
|
|
|
372 2
|
|
|
|
373 2 D_stdIO_P2_ALL();
|
|
|
|
374 2 D_P24_REV();
|
|
|
|
375 2
|
|
|
|
376 2 Lc_delay_ms(300);
|
|
|
|
377 2 D_P24_REV();
|
|
|
|
378 2
|
|
|
|
379 2
|
|
|
|
380 2 }
|
|
|
|
381 1
|
|
|
|
382 1 }
|
|
|
|
383
|
|
|
|
384
|
|
|
|
|
|
|
|
|
|
|
|
MODULE INFORMATION: STATIC OVERLAYABLE
|
|
|
|
CODE SIZE = 892 ----
|
|
|
|
CONSTANT SIZE = 36 ----
|
|
|
|
XDATA SIZE = 54 ----
|
|
|
|
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. 2 WARNING(S), 0 ERROR(S)
|