📄 main.lss
字号:
258: 82 30 cpi r24, 0x02 ; 2
25a: 91 05 cpc r25, r1
25c: 99 f1 breq .+102 ; 0x2c4
25e: 2e 81 ldd r18, Y+6 ; 0x06
260: 3f 81 ldd r19, Y+7 ; 0x07
262: 23 30 cpi r18, 0x03 ; 3
264: 31 05 cpc r19, r1
266: 34 f4 brge .+12 ; 0x274
268: 8e 81 ldd r24, Y+6 ; 0x06
26a: 9f 81 ldd r25, Y+7 ; 0x07
26c: 81 30 cpi r24, 0x01 ; 1
26e: 91 05 cpc r25, r1
270: 41 f0 breq .+16 ; 0x282
272: 69 c0 rjmp .+210 ; 0x346
274: 2e 81 ldd r18, Y+6 ; 0x06
276: 3f 81 ldd r19, Y+7 ; 0x07
278: 23 30 cpi r18, 0x03 ; 3
27a: 31 05 cpc r19, r1
27c: 09 f4 brne .+2 ; 0x280
27e: 43 c0 rjmp .+134 ; 0x306
280: 62 c0 rjmp .+196 ; 0x346
{
case 1://保存合闸线圈电流
SRAM_1M_8_WRITE(global_close_counter,temp1);//高位字节
282: 80 91 18 01 lds r24, 0x0118
286: 90 91 19 01 lds r25, 0x0119
28a: aa 27 eor r26, r26
28c: bb 27 eor r27, r27
28e: 4b 81 ldd r20, Y+3 ; 0x03
290: bc 01 movw r22, r24
292: cd 01 movw r24, r26
294: 0e 94 a8 03 call 0x750
SRAM_1M_8_WRITE(global_close_counter+1,temp2);//低位字节
298: 80 91 18 01 lds r24, 0x0118
29c: 90 91 19 01 lds r25, 0x0119
2a0: 01 96 adiw r24, 0x01 ; 1
2a2: aa 27 eor r26, r26
2a4: bb 27 eor r27, r27
2a6: 4c 81 ldd r20, Y+4 ; 0x04
2a8: bc 01 movw r22, r24
2aa: cd 01 movw r24, r26
2ac: 0e 94 a8 03 call 0x750
global_close_counter+=2;
2b0: 80 91 18 01 lds r24, 0x0118
2b4: 90 91 19 01 lds r25, 0x0119
2b8: 02 96 adiw r24, 0x02 ; 2
2ba: 90 93 19 01 sts 0x0119, r25
2be: 80 93 18 01 sts 0x0118, r24
break;
2c2: 41 c0 rjmp .+130 ; 0x346
case 2://保存分闸线圈电流
SRAM_1M_8_WRITE(global_trip_counter,temp1);//高位字节
2c4: 80 91 10 01 lds r24, 0x0110
2c8: 90 91 11 01 lds r25, 0x0111
2cc: aa 27 eor r26, r26
2ce: bb 27 eor r27, r27
2d0: 4b 81 ldd r20, Y+3 ; 0x03
2d2: bc 01 movw r22, r24
2d4: cd 01 movw r24, r26
2d6: 0e 94 a8 03 call 0x750
SRAM_1M_8_WRITE(global_trip_counter+1,temp2);//低位字节
2da: 80 91 10 01 lds r24, 0x0110
2de: 90 91 11 01 lds r25, 0x0111
2e2: 01 96 adiw r24, 0x01 ; 1
2e4: aa 27 eor r26, r26
2e6: bb 27 eor r27, r27
2e8: 4c 81 ldd r20, Y+4 ; 0x04
2ea: bc 01 movw r22, r24
2ec: cd 01 movw r24, r26
2ee: 0e 94 a8 03 call 0x750
global_trip_counter+=2;
2f2: 80 91 10 01 lds r24, 0x0110
2f6: 90 91 11 01 lds r25, 0x0111
2fa: 02 96 adiw r24, 0x02 ; 2
2fc: 90 93 11 01 sts 0x0111, r25
300: 80 93 10 01 sts 0x0110, r24
break;
304: 20 c0 rjmp .+64 ; 0x346
case 3://保存操作电压
// SRAM_1M_8_WRITE(global_motor_counter,temp1);//高位字节
// SRAM_1M_8_WRITE(global_motor_counter+1,temp2);//低位字节
SRAM_1M_8_WRITE(global_voltage_counter,temp1);//高位字节
306: 80 91 02 01 lds r24, 0x0102
30a: 90 91 03 01 lds r25, 0x0103
30e: aa 27 eor r26, r26
310: bb 27 eor r27, r27
312: 4b 81 ldd r20, Y+3 ; 0x03
314: bc 01 movw r22, r24
316: cd 01 movw r24, r26
318: 0e 94 a8 03 call 0x750
SRAM_1M_8_WRITE(global_voltage_counter+1,temp2);//低位字节
31c: 80 91 02 01 lds r24, 0x0102
320: 90 91 03 01 lds r25, 0x0103
324: 01 96 adiw r24, 0x01 ; 1
326: aa 27 eor r26, r26
328: bb 27 eor r27, r27
32a: 4c 81 ldd r20, Y+4 ; 0x04
32c: bc 01 movw r22, r24
32e: cd 01 movw r24, r26
330: 0e 94 a8 03 call 0x750
global_voltage_counter+=2;
334: 80 91 02 01 lds r24, 0x0102
338: 90 91 03 01 lds r25, 0x0103
33c: 02 96 adiw r24, 0x02 ; 2
33e: 90 93 03 01 sts 0x0103, r25
342: 80 93 02 01 sts 0x0102, r24
// global_motor_counter+=2;
break;
// case 4://保存操作电压
// SRAM_1M_8_WRITE(global_voltage_counter,temp1);//高位字节
// SRAM_1M_8_WRITE(global_voltage_counter+1,temp2);//低位字节
// global_voltage_counter+=2;
// break;
default:
break;
}
//计数器自加
global_ad_counter++;
346: 80 91 15 01 lds r24, 0x0115
34a: 90 91 16 01 lds r25, 0x0116
34e: 01 96 adiw r24, 0x01 ; 1
350: 90 93 16 01 sts 0x0116, r25
354: 80 93 15 01 sts 0x0115, r24
}
//如果是检测动作是否开始的采样
if(global_sample_mode_flag==0x00)
358: 80 91 14 01 lds r24, 0x0114
35c: 88 23 and r24, r24
35e: 09 f0 breq .+2 ; 0x362
360: 7c c0 rjmp .+248 ; 0x45a
{
//采样轮转赋值
//合闸线圈采样
if(global_ad_counter%2==0)
362: 80 91 15 01 lds r24, 0x0115
366: 90 91 16 01 lds r25, 0x0116
36a: 81 70 andi r24, 0x01 ; 1
36c: 90 70 andi r25, 0x00 ; 0
36e: 00 97 sbiw r24, 0x00 ; 0
370: b1 f4 brne .+44 ; 0x39e
{
// global_detect_close[0]=int16_temp1;
global_detect_close[0]=global_detect_close[1];
372: 80 91 1c 01 lds r24, 0x011C
376: 90 91 1d 01 lds r25, 0x011D
37a: 90 93 1b 01 sts 0x011B, r25
37e: 80 93 1a 01 sts 0x011A, r24
global_detect_close[1]=global_detect_close[2];
382: 80 91 1e 01 lds r24, 0x011E
386: 90 91 1f 01 lds r25, 0x011F
38a: 90 93 1d 01 sts 0x011D, r25
38e: 80 93 1c 01 sts 0x011C, r24
global_detect_close[2]=int16_temp1;
392: 89 81 ldd r24, Y+1 ; 0x01
394: 9a 81 ldd r25, Y+2 ; 0x02
396: 90 93 1f 01 sts 0x011F, r25
39a: 80 93 1e 01 sts 0x011E, r24
// global_detect_close[2]=int16_temp1;
}
//分闸线圈采样
if(global_ad_counter%2==1)
39e: 80 91 15 01 lds r24, 0x0115
3a2: 90 91 16 01 lds r25, 0x0116
3a6: 81 70 andi r24, 0x01 ; 1
3a8: 90 70 andi r25, 0x00 ; 0
3aa: 81 30 cpi r24, 0x01 ; 1
3ac: 91 05 cpc r25, r1
3ae: b1 f4 brne .+44 ; 0x3dc
{
// global_detect_trip[0]=int16_temp1;
global_detect_trip[0]=global_detect_trip[1];
3b0: 80 91 06 01 lds r24, 0x0106
3b4: 90 91 07 01 lds r25, 0x0107
3b8: 90 93 05 01 sts 0x0105, r25
3bc: 80 93 04 01 sts 0x0104, r24
global_detect_trip[1]=global_detect_trip[2];
3c0: 80 91 08 01 lds r24, 0x0108
3c4: 90 91 09 01 lds r25, 0x0109
3c8: 90 93 07 01 sts 0x0107, r25
3cc: 80 93 06 01 sts 0x0106, r24
global_detect_trip[2]=int16_temp1;
3d0: 89 81 ldd r24, Y+1 ; 0x01
3d2: 9a 81 ldd r25, Y+2 ; 0x02
3d4: 90 93 09 01 sts 0x0109, r25
3d8: 80 93 08 01 sts 0x0108, r24
// global_detect_trip[2]=int16_temp1;
}
//判断是否有码值变化
//判断合闸数据
if((global_detect_close[0]>2046)&&(global_detect_close[1]>2046)&&(global_detect_close[2]>2046))//&&(global_detect_close[3]>2045)&&(global_detect_close[4]>2045))
3dc: 80 91 1a 01 lds r24, 0x011A
3e0: 90 91 1b 01 lds r25, 0x011B
3e4: 37 e0 ldi r19, 0x07 ; 7
3e6: 8f 3f cpi r24, 0xFF ; 255
3e8: 93 07 cpc r25, r19
3ea: 98 f0 brcs .+38 ; 0x412
3ec: 80 91 1c 01 lds r24, 0x011C
3f0: 90 91 1d 01 lds r25, 0x011D
3f4: 27 e0 ldi r18, 0x07 ; 7
3f6: 8f 3f cpi r24, 0xFF ; 255
3f8: 92 07 cpc r25, r18
3fa: 58 f0 brcs .+22 ; 0x412
3fc: 80 91 1e 01 lds r24, 0x011E
400: 90 91 1f 01 lds r25, 0x011F
404: 37 e0 ldi r19, 0x07 ; 7
406: 8f 3f cpi r24, 0xFF ; 255
408: 93 07 cpc r25, r19
40a: 18 f0 brcs .+6 ; 0x412
{
//检测到动作标志赋值
global_operation_detected_flag=1;
40c: 81 e0 ldi r24, 0x01 ; 1
40e: 80 93 0e 01 sts 0x010E, r24
}
// if(global_detect_close[0]>2049)
// {
// if((global_detect_close[1]-global_detect_close[0]>1)&&(global_detect_close[2]-global_detect_close[1]>1))//&&(global_detect_close[3]-global_detect_close[0]>1))
// {
//检测到动作标志赋值
// global_operation_detected_flag=1;
// }
// }
//判断分闸数据
if((global_detect_trip[0]>2046)&&(global_detect_trip[1]>2046)&&(global_detect_trip[2]>2046))//&&(global_detect_trip[3]>2045)&&(global_detect_trip[4]>2045))
412: 80 91 04 01 lds r24, 0x0104
416: 90 91 05 01 lds r25, 0x0105
41a: 27 e0 ldi r18, 0x07 ; 7
41c: 8f 3f cpi r24, 0xFF ; 255
41e: 92 07 cpc r25, r18
420: 98 f0 brcs .+38 ; 0x448
422: 80 91 06 01 lds r24, 0x0106
426: 90 91 07 01 lds r25, 0x0107
42a: 37 e0 ldi r19, 0x07 ; 7
42c: 8f 3f cpi r24, 0xFF ; 255
42e: 93 07 cpc r25, r19
430: 58 f0 brcs .+22 ; 0x448
432: 80 91 08 01 lds r24, 0x0108
436: 90 91 09 01 lds r25, 0x0109
43a: 27 e0 ldi r18, 0x07 ; 7
43c: 8f 3f cpi r24, 0xFF ; 255
43e: 92 07 cpc r25, r18
440: 18 f0 brcs .+6 ; 0x448
{
//检测到动作标志赋值
global_operation_detected_flag=1;
442: 81 e0 ldi r24, 0x01 ; 1
444: 80 93 0e 01 sts 0x010E, r24
}
// if(global_detect_trip[0]>2049)
// {
// if((global_detect_trip[1]-global_detect_trip[0]>1)&&(global_detect_trip[2]-global_detect_trip[1]>1))//&&(global_detect_trip[3]-global_detect_trip[0]>1))
// {
//检测到动作标志赋值
// global_operation_detected_flag=1;
// }
// }
// if(int16_temp1>2049)
// {
//检测到动作标志赋值
// global_operation_detected_flag=1;
// }
global_ad_counter++;
448: 80 91 15 01 lds r24, 0x0115
44c: 90 91 16 01 lds r25, 0x0116
450: 01 96 adiw r24, 0x01 ; 1
452: 90 93 16 01 sts 0x0116, r25
456: 80 93 15 01 sts 0x0115, r24
}
//完成一次AD转换,将AD转换结束标志赋值
global_ad_finish_flag=0xFF;
45a: 8f ef ldi r24, 0xFF ; 255
45c: 80 93 01 01 sts 0x0101, r24
//开中断
sei();
460: 78 94 sei
}
462: 27 96 adiw r28, 0x07 ; 7
464: f8 94 cli
466: de bf out 0x3e, r29 ; 62
468: cd bf out 0x3d, r28 ; 61
46a: df 91 pop r29
46c: cf 91 pop r28
46e: ff 91 pop r31
470: ef 91 pop r30
472: bf 91 pop r27
474: af 91 pop r26
476: 9f 91 pop r25
478: 8f 91 pop r24
47a: 7f 91 pop r23
47c: 6f 91 pop r22
47e: 5f 91 pop r21
480: 4f 91 pop r20
482: 3f 91 pop r19
484: 2f 91 pop r18
486: 0f 90 pop r0
488: 0f be out 0x3f, r0 ; 63
48a: 0f 90 pop r0
48c: 1f 90 pop r1
48e: 18 95 reti
00000490 <main>:
//主程序//////////////////////////////
int main()
{
490: ce ef ldi r28, 0xFE ; 254
492: d0 e1 ldi r29, 0x10 ; 16
494: de bf out 0x3e, r29 ; 62
496: cd bf out 0x3d, r28 ; 61
//变量定义
uint8_t i;
//初始化和串口波特率设置
INITIATION();
498: 0e 94 d9 02 call 0x5b2
//PG3供测试用/////////////
sbi(DDRG,3);
49c: 80 91 64 00 lds r24, 0x0064
4a0: 88 60 ori r24, 0x08 ; 8
4a2: 80 93 64 00 sts 0x0064, r24
cbi(PORTG,3);
4a6: 80 91 65 00 lds r24, 0x0065
4aa: 87 7f andi r24, 0xF7 ; 247
4ac: 80 93 65 00 sts 0x0065, r24
//开中断
sei();
4b0: 78 94 sei
//自动测试标志初始化
global_sample_mode_flag=0xFF;
4b2: 8f ef ldi r24, 0xFF ; 255
4b4: 80 93 14 01 sts 0x0114, r24
//采集控制标志初始化
global_start_sample_flag=0xFF;
4b8: 8f ef ldi r24, 0xFF ; 255
4ba: 80 93 17 01 sts 0x0117, r24
//串口接收控制变量初始化
global_flag_serie=0;
4be: 10 92 0f 01 sts 0x010F, r1
//开串口接收中断
UART_RXCINT_OPEN();
4c2: 0e 94 38 06 call 0xc70
//延时
for(i=0;i<0xFF;i++)
4c6: 19 82 std Y+1, r1 ; 0x01
4c8: 89 81 ldd r24, Y+1 ; 0x01
4ca: 8f 3f cpi r24, 0xFF ; 255
4cc: 09 f4 brne .+2 ; 0x4d0
4ce: 14 c0 rjmp .+40 ; 0x4f8
{
TIMER_BEGIN();
4d0: 0e 94 be 07 call 0xf7c
//等待定时器溢出,AD结束中断处理在等待过程中完成
while(!(TIFR&(1<<OCF1A))){;}
4d4: 80 91 56 00 lds r24, 0x0056
4d8: 99 27 eor r25, r25
4da: 80 71 andi r24, 0x10 ; 16
4dc: 90 70 andi r25, 0x00 ; 0
4de: 00 97 sbiw r24, 0x00 ; 0
4e0: c9 f3 breq .-14 ; 0x4d4
TIFR|=1<<OCF1A;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -