📄 main.lst
字号:
92:main.c **** //保存数据
93:main.c **** switch(global_channel_flag)
345 .LM30:
346 017e 8091 0000 lds r24,global_channel_flag
347 0182 282F mov r18,r24
348 0184 3327 clr r19
349 0186 2E83 std Y+6,r18
350 0188 3F83 std Y+7,r19
351 018a 8E81 ldd r24,Y+6
352 018c 9F81 ldd r25,Y+7
353 018e 8230 cpi r24,2
354 0190 9105 cpc r25,__zero_reg__
355 0192 99F1 breq .L31
356 0194 2E81 ldd r18,Y+6
357 0196 3F81 ldd r19,Y+7
358 0198 2330 cpi r18,3
359 019a 3105 cpc r19,__zero_reg__
360 019c 34F4 brge .L35
361 019e 8E81 ldd r24,Y+6
362 01a0 9F81 ldd r25,Y+7
363 01a2 8130 cpi r24,1
364 01a4 9105 cpc r25,__zero_reg__
365 01a6 41F0 breq .L30
366 01a8 69C0 rjmp .L29
367 .L35:
368 01aa 2E81 ldd r18,Y+6
369 01ac 3F81 ldd r19,Y+7
370 01ae 2330 cpi r18,3
371 01b0 3105 cpc r19,__zero_reg__
372 01b2 09F4 brne .+2
373 01b4 43C0 rjmp .L32
374 01b6 62C0 rjmp .L29
375 .L30:
94:main.c **** {
95:main.c **** case 1://保存合闸线圈电流
96:main.c **** SRAM_1M_8_WRITE(global_close_counter,temp1);//高位字节
377 .LM31:
378 01b8 8091 0000 lds r24,global_close_counter
379 01bc 9091 0000 lds r25,(global_close_counter)+1
380 01c0 AA27 clr r26
381 01c2 BB27 clr r27
382 01c4 4B81 ldd r20,Y+3
383 01c6 BC01 movw r22,r24
384 01c8 CD01 movw r24,r26
385 01ca 0E94 0000 call SRAM_1M_8_WRITE
97:main.c **** SRAM_1M_8_WRITE(global_close_counter+1,temp2);//低位字节
387 .LM32:
388 01ce 8091 0000 lds r24,global_close_counter
389 01d2 9091 0000 lds r25,(global_close_counter)+1
390 01d6 0196 adiw r24,1
391 01d8 AA27 clr r26
392 01da BB27 clr r27
393 01dc 4C81 ldd r20,Y+4
394 01de BC01 movw r22,r24
395 01e0 CD01 movw r24,r26
396 01e2 0E94 0000 call SRAM_1M_8_WRITE
98:main.c **** global_close_counter+=2;
398 .LM33:
399 01e6 8091 0000 lds r24,global_close_counter
400 01ea 9091 0000 lds r25,(global_close_counter)+1
401 01ee 0296 adiw r24,2
402 01f0 9093 0000 sts (global_close_counter)+1,r25
403 01f4 8093 0000 sts global_close_counter,r24
99:main.c **** break;
405 .LM34:
406 01f8 41C0 rjmp .L29
407 .L31:
100:main.c **** case 2://保存分闸线圈电流
101:main.c **** SRAM_1M_8_WRITE(global_trip_counter,temp1);//高位字节
409 .LM35:
410 01fa 8091 0000 lds r24,global_trip_counter
411 01fe 9091 0000 lds r25,(global_trip_counter)+1
412 0202 AA27 clr r26
413 0204 BB27 clr r27
414 0206 4B81 ldd r20,Y+3
415 0208 BC01 movw r22,r24
416 020a CD01 movw r24,r26
417 020c 0E94 0000 call SRAM_1M_8_WRITE
102:main.c **** SRAM_1M_8_WRITE(global_trip_counter+1,temp2);//低位字节
419 .LM36:
420 0210 8091 0000 lds r24,global_trip_counter
421 0214 9091 0000 lds r25,(global_trip_counter)+1
422 0218 0196 adiw r24,1
423 021a AA27 clr r26
424 021c BB27 clr r27
425 021e 4C81 ldd r20,Y+4
426 0220 BC01 movw r22,r24
427 0222 CD01 movw r24,r26
428 0224 0E94 0000 call SRAM_1M_8_WRITE
103:main.c **** global_trip_counter+=2;
430 .LM37:
431 0228 8091 0000 lds r24,global_trip_counter
432 022c 9091 0000 lds r25,(global_trip_counter)+1
433 0230 0296 adiw r24,2
434 0232 9093 0000 sts (global_trip_counter)+1,r25
435 0236 8093 0000 sts global_trip_counter,r24
104:main.c **** break;
437 .LM38:
438 023a 20C0 rjmp .L29
439 .L32:
105:main.c **** case 3://保存操作电压
106:main.c **** // SRAM_1M_8_WRITE(global_motor_counter,temp1);//高位字节
107:main.c **** // SRAM_1M_8_WRITE(global_motor_counter+1,temp2);//低位字节
108:main.c **** SRAM_1M_8_WRITE(global_voltage_counter,temp1);//高位字节
441 .LM39:
442 023c 8091 0000 lds r24,global_voltage_counter
443 0240 9091 0000 lds r25,(global_voltage_counter)+1
444 0244 AA27 clr r26
445 0246 BB27 clr r27
446 0248 4B81 ldd r20,Y+3
447 024a BC01 movw r22,r24
448 024c CD01 movw r24,r26
449 024e 0E94 0000 call SRAM_1M_8_WRITE
109:main.c **** SRAM_1M_8_WRITE(global_voltage_counter+1,temp2);//低位字节
451 .LM40:
452 0252 8091 0000 lds r24,global_voltage_counter
453 0256 9091 0000 lds r25,(global_voltage_counter)+1
454 025a 0196 adiw r24,1
455 025c AA27 clr r26
456 025e BB27 clr r27
457 0260 4C81 ldd r20,Y+4
458 0262 BC01 movw r22,r24
459 0264 CD01 movw r24,r26
460 0266 0E94 0000 call SRAM_1M_8_WRITE
110:main.c **** global_voltage_counter+=2;
462 .LM41:
463 026a 8091 0000 lds r24,global_voltage_counter
464 026e 9091 0000 lds r25,(global_voltage_counter)+1
465 0272 0296 adiw r24,2
466 0274 9093 0000 sts (global_voltage_counter)+1,r25
467 0278 8093 0000 sts global_voltage_counter,r24
468 .L29:
111:main.c **** // global_motor_counter+=2;
112:main.c **** break;
113:main.c **** // case 4://保存操作电压
114:main.c **** // SRAM_1M_8_WRITE(global_voltage_counter,temp1);//高位字节
115:main.c **** // SRAM_1M_8_WRITE(global_voltage_counter+1,temp2);//低位字节
116:main.c **** // global_voltage_counter+=2;
117:main.c **** // break;
118:main.c **** default:
119:main.c **** break;
120:main.c **** }
121:main.c **** //计数器自加
122:main.c **** global_ad_counter++;
470 .LM42:
471 027c 8091 0000 lds r24,global_ad_counter
472 0280 9091 0000 lds r25,(global_ad_counter)+1
473 0284 0196 adiw r24,1
474 0286 9093 0000 sts (global_ad_counter)+1,r25
475 028a 8093 0000 sts global_ad_counter,r24
476 .L28:
123:main.c **** }
124:main.c **** //如果是检测动作是否开始的采样
125:main.c **** if(global_sample_mode_flag==0x00)
478 .LM43:
479 028e 8091 0000 lds r24,global_sample_mode_flag
480 0292 8823 tst r24
481 0294 09F0 breq .+2
482 0296 7CC0 rjmp .L36
126:main.c **** {
127:main.c **** //采样轮转赋值
128:main.c **** //合闸线圈采样
129:main.c **** if(global_ad_counter%2==0)
484 .LM44:
485 0298 8091 0000 lds r24,global_ad_counter
486 029c 9091 0000 lds r25,(global_ad_counter)+1
487 02a0 8170 andi r24,lo8(1)
488 02a2 9070 andi r25,hi8(1)
489 02a4 0097 sbiw r24,0
490 02a6 B1F4 brne .L37
130:main.c **** {
131:main.c **** // global_detect_close[0]=int16_temp1;
132:main.c **** global_detect_close[0]=global_detect_close[1];
492 .LM45:
493 02a8 8091 0000 lds r24,global_detect_close+2
494 02ac 9091 0000 lds r25,(global_detect_close+2)+1
495 02b0 9093 0000 sts (global_detect_close)+1,r25
496 02b4 8093 0000 sts global_detect_close,r24
133:main.c **** global_detect_close[1]=global_detect_close[2];
498 .LM46:
499 02b8 8091 0000 lds r24,global_detect_close+4
500 02bc 9091 0000 lds r25,(global_detect_close+4)+1
501 02c0 9093 0000 sts (global_detect_close+2)+1,r25
502 02c4 8093 0000 sts global_detect_close+2,r24
134:main.c **** global_detect_close[2]=int16_temp1;
504 .LM47:
505 02c8 8981 ldd r24,Y+1
506 02ca 9A81 ldd r25,Y+2
507 02cc 9093 0000 sts (global_detect_close+4)+1,r25
508 02d0 8093 0000 sts global_detect_close+4,r24
509 .L37:
135:main.c **** // global_detect_close[2]=int16_temp1;
136:main.c **** }
137:main.c **** //分闸线圈采样
138:main.c **** if(global_ad_counter%2==1)
511 .LM48:
512 02d4 8091 0000 lds r24,global_ad_counter
513 02d8 9091 0000 lds r25,(global_ad_counter)+1
514 02dc 8170 andi r24,lo8(1)
515 02de 9070 andi r25,hi8(1)
516 02e0 8130 cpi r24,1
517 02e2 9105 cpc r25,__zero_reg__
518 02e4 B1F4 brne .L38
139:main.c **** {
140:main.c **** // global_detect_trip[0]=int16_temp1;
141:main.c **** global_detect_trip[0]=global_detect_trip[1];
520 .LM49:
521 02e6 8091 0000 lds r24,global_detect_trip+2
522 02ea 9091 0000 lds r25,(global_detect_trip+2)+1
523 02ee 9093 0000 sts (global_detect_trip)+1,r25
524 02f2 8093 0000 sts global_detect_trip,r24
142:main.c **** global_detect_trip[1]=global_detect_trip[2];
526 .LM50:
527 02f6 8091 0000 lds r24,global_detect_trip+4
528 02fa 9091 0000 lds r25,(global_detect_trip+4)+1
529 02fe 9093 0000 sts (global_detect_trip+2)+1,r25
530 0302 8093 0000 sts global_detect_trip+2,r24
143:main.c **** global_detect_trip[2]=int16_temp1;
532 .LM51:
533 0306 8981 ldd r24,Y+1
534 0308 9A81 ldd r25,Y+2
535 030a 9093 0000 sts (global_detect_trip+4)+1,r25
536 030e 8093 0000 sts global_detect_trip+4,r24
537 .L38:
144:main.c **** // global_detect_trip[2]=int16_temp1;
145:main.c **** }
146:main.c **** //判断是否有码值变化
147:main.c **** //判断合闸数据
148:main.c **** if((global_detect_close[0]>2046)&&(global_detect_close[1]>2046)&&(global_detect_close[2]>2046))//
539 .LM52:
540 0312 8091 0000 lds r24,global_detect_close
541 0316 9091 0000 lds r25,(global_detect_close)+1
542 031a 37E0 ldi r19,hi8(2047)
543 031c 8F3F cpi r24,lo8(2047)
544 031e 9307 cpc r25,r19
545 0320 98F0 brlo .L39
546 0322 8091 0000 lds r24,global_detect_close+2
547 0326 9091 0000 lds r25,(global_detect_close+2)+1
548 032a 27E0 ldi r18,hi8(2047)
549 032c 8F3F cpi r24,lo8(2047)
550 032e 9207 cpc r25,r18
551 0330 58F0 brlo .L39
552 0332 8091 0000 lds r24,global_detect_close+4
553 0336 9091 0000 lds r25,(global_detect_close+4)+1
554 033a 37E0 ldi r19,hi8(2047)
555 033c 8F3F cpi r24,lo8(2047)
556 033e 9307 cpc r25,r19
557 0340 18F0 brlo .L39
149:main.c **** {
150:main.c **** //检测到动作标志赋值
151:main.c **** global_operation_detected_flag=1;
559 .LM53:
560 0342 81E0 ldi r24,lo8(1)
561 0344 8093 0000 sts global_operation_detected_flag,r24
562 .L39:
152:main.c **** }
153:main.c **** // if(global_detect_close[0]>2049)
154:main.c **** // {
155:main.c **** // if((global_detect_close[1]-global_detect_close[0]>1)&&(global_detect_close[2]-global_detect_cl
156:main.c **** // {
157:main.c **** //检测到动作标志赋值
158:main.c **** // global_operation_detected_flag=1;
159:main.c **** // }
160:main.c **** // }
161:main.c **** //判断分闸数据
162:main.c **** if((global_detect_trip[0]>2046)&&(global_detect_trip[1]>2046)&&(global_detect_trip[2]>2046))//&&(
564 .LM54:
565 0348 8091 0000 lds r24,global_detect_trip
566 034c 9091 0000 lds r25,(global_detect_trip)+1
567 0350 27E0 ldi r18,hi8(2047)
568 0352 8F3F cpi r24,lo8(2047)
569 0354 9207 cpc r25,r18
570 0356 98F0 brlo .L40
571 0358 8091 0000 lds r24,global_detect_trip+2
572 035c 9091 0000 lds r25,(global_detect_trip+2)+1
573 0360 37E0 ldi r19,hi8(2047)
574 0362 8F3F cpi r24,lo8(2047)
575 0364 9307 cpc r25,r19
576 0366 58F0 brlo .L40
577 0368 8091 0000 lds r24,global_detect_trip+4
578 036c 9091 0000 lds r25,(global_detect_trip+4)+1
579 0370 27E0 ldi r18,hi8(2047)
580 0372 8F3F cpi r24,lo8(2047)
581 0374 9207 cpc r25,r18
582 0376 18F0 brlo .L40
163:main.c **** {
164:main.c **** //检测到动作标志赋值
165:main.c **** global_operation_detected_flag=1;
584 .LM55:
585 0378 81E0 ldi r24,lo8(1)
586 037a 8093 0000 sts global_operation_detected_flag,r24
587 .L40:
166:main.c **** }
167:main.c **** // if(global_detect_trip[0]>2049)
168:main.c **** // {
169:main.c **** // if((global_detect_trip[1]-global_detect_trip[0]>1)&&(global_detect_trip[2]-global_detect_trip[
170:main.c **** // {
171:main.c **** //检测到动作标志赋值
172:main.c **** // global_operation_detected_flag=1;
173:main.c **** // }
174:main.c **** // }
175:main.c **** // if(int16_temp1>2049)
176:main.c **** // {
177:main.c **** //检测到动作标志赋值
178:main.c **** // global_operation_detected_flag=1;
179:main.c **** // }
180:main.c **** global_ad_counter++;
589 .LM56:
590 037e 8091 0000 lds r24,global_ad_counter
591 0382 9091 0000 lds r25,(global_ad_counter)+1
592 0386 0196 adiw r24,1
593 0388 9093 0000 sts (global_ad_counter)+1,r25
594 038c 8093 0000 sts global_ad_counter,r24
595 .L36:
181:main.c **** }
182:main.c **** //完成一次AD转换,将AD转换结束标志赋值
183:main.c **** global_ad_finish_flag=0xFF;
597 .LM57:
598 0390 8FEF ldi r24,lo8(-1)
599 0392 8093 0000 sts global_ad_finish_flag,r24
184:main.c **** //开中断
185:main.c **** sei();
601 .LM58:
602 /* #APP */
603 0396 7894 sei
186:main.c **** }
605 .LM59:
606 /* #NOAPP */
607 .LBE3:
608 /* epilogue: frame size=7 */
609 0398 2796 adiw r28,7
610 039a F894 cli
611 039c DEBF out __SP_H__,r29
612 039e CDBF out __SP_L__,r28
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -