📄 main.lss
字号:
234: 20 f4 brcc .+8 ; 0x23e <adc_maxmin+0x72>
{
min_value=ret-*(xp+i);
236: 80 81 ld r24, Z
238: a6 2f mov r26, r22
23a: a8 1b sub r26, r24
min_id=i;
23c: b4 2f mov r27, r20
23e: 4f 5f subi r20, 0xFF ; 255
240: 32 96 adiw r30, 0x02 ; 2
242: 4a 30 cpi r20, 0x0A ; 10
244: f8 f2 brcs .-66 ; 0x204 <adc_maxmin+0x38>
}
}
}
//去掉第一个和最大最小值后的平均值
ret=0;
246: 60 e0 ldi r22, 0x00 ; 0
248: 70 e0 ldi r23, 0x00 ; 0
for(i=1;i<10;i++)
24a: 41 e0 ldi r20, 0x01 ; 1
24c: fe 01 movw r30, r28
24e: 32 96 adiw r30, 0x02 ; 2
{
if((i!=min_id)&&(i!=max_id))
250: 4b 17 cp r20, r27
252: 31 f0 breq .+12 ; 0x260 <adc_maxmin+0x94>
254: 41 17 cp r20, r17
256: 21 f0 breq .+8 ; 0x260 <adc_maxmin+0x94>
ret+=*(xp+i);
258: 80 81 ld r24, Z
25a: 91 81 ldd r25, Z+1 ; 0x01
25c: 68 0f add r22, r24
25e: 79 1f adc r23, r25
260: 4f 5f subi r20, 0xFF ; 255
262: 32 96 adiw r30, 0x02 ; 2
264: 4a 30 cpi r20, 0x0A ; 10
266: a0 f3 brcs .-24 ; 0x250 <adc_maxmin+0x84>
}
if(min_id!=max_id)
268: b1 17 cp r27, r17
26a: 31 f0 breq .+12 ; 0x278 <adc_maxmin+0xac>
ret/=7;
26c: cb 01 movw r24, r22
26e: 67 e0 ldi r22, 0x07 ; 7
270: 70 e0 ldi r23, 0x00 ; 0
272: 0e 94 94 09 call 0x1328 <__divmodhi4>
276: 09 c0 rjmp .+18 ; 0x28a <adc_maxmin+0xbe>
else
ret/=8;
278: cb 01 movw r24, r22
27a: 77 fd sbrc r23, 7
27c: 07 96 adiw r24, 0x07 ; 7
27e: bc 01 movw r22, r24
280: 93 e0 ldi r25, 0x03 ; 3
282: 75 95 asr r23
284: 67 95 ror r22
286: 9a 95 dec r25
288: e1 f7 brne .-8 ; 0x282 <adc_maxmin+0xb6>
return ret;
}
28a: cb 01 movw r24, r22
28c: df 91 pop r29
28e: cf 91 pop r28
290: 1f 91 pop r17
292: 08 95 ret
00000294 <adc_sy>:
void adc_sy(void){
static uch x,y;
if(x>10){
294: 80 91 82 00 lds r24, 0x0082
298: 8b 30 cpi r24, 0x0B ; 11
29a: 58 f1 brcs .+86 ; 0x2f2 <adc_sy+0x5e>
x=0;
29c: 10 92 82 00 sts 0x0082, r1
if(y<10){
2a0: 20 91 83 00 lds r18, 0x0083
2a4: 2a 30 cpi r18, 0x0A ; 10
2a6: 10 f5 brcc .+68 ; 0x2ec <adc_sy+0x58>
vo_a[y]=adc_1;
2a8: e2 2f mov r30, r18
2aa: ff 27 eor r31, r31
2ac: ee 0f add r30, r30
2ae: ff 1f adc r31, r31
2b0: df 01 movw r26, r30
2b2: a9 52 subi r26, 0x29 ; 41
2b4: bf 4f sbci r27, 0xFF ; 255
2b6: 80 91 c0 00 lds r24, 0x00C0
2ba: 90 91 c1 00 lds r25, 0x00C1
2be: 8d 93 st X+, r24
2c0: 9c 93 st X, r25
vi_a[y]=adc_2;
2c2: df 01 movw r26, r30
2c4: ae 53 subi r26, 0x3E ; 62
2c6: bf 4f sbci r27, 0xFF ; 255
2c8: 80 91 be 00 lds r24, 0x00BE
2cc: 90 91 bf 00 lds r25, 0x00BF
2d0: 8d 93 st X+, r24
2d2: 9c 93 st X, r25
va_a[y]=adc_3;
2d4: e7 56 subi r30, 0x67 ; 103
2d6: ff 4f sbci r31, 0xFF ; 255
2d8: 80 91 b2 00 lds r24, 0x00B2
2dc: 90 91 b3 00 lds r25, 0x00B3
2e0: 91 83 std Z+1, r25 ; 0x01
2e2: 80 83 st Z, r24
y++;
2e4: 2f 5f subi r18, 0xFF ; 255
2e6: 20 93 83 00 sts 0x0083, r18
2ea: 06 c0 rjmp .+12 ; 0x2f8 <adc_sy+0x64>
}
else y=0;
2ec: 10 92 83 00 sts 0x0083, r1
2f0: 03 c0 rjmp .+6 ; 0x2f8 <adc_sy+0x64>
}
else x++;
2f2: 8f 5f subi r24, 0xFF ; 255
2f4: 80 93 82 00 sts 0x0082, r24
if(y==10){
2f8: 80 91 83 00 lds r24, 0x0083
2fc: 8a 30 cpi r24, 0x0A ; 10
2fe: e9 f4 brne .+58 ; 0x33a <adc_sy+0xa6>
vo2=adc_maxmin(vo_a,1);
300: 61 e0 ldi r22, 0x01 ; 1
302: 87 ed ldi r24, 0xD7 ; 215
304: 90 e0 ldi r25, 0x00 ; 0
306: 0e 94 e6 00 call 0x1cc <adc_maxmin>
30a: 90 93 b1 00 sts 0x00B1, r25
30e: 80 93 b0 00 sts 0x00B0, r24
vi2=adc_maxmin(vi_a,2);
312: 62 e0 ldi r22, 0x02 ; 2
314: 82 ec ldi r24, 0xC2 ; 194
316: 90 e0 ldi r25, 0x00 ; 0
318: 0e 94 e6 00 call 0x1cc <adc_maxmin>
31c: 90 93 06 01 sts 0x0106, r25
320: 80 93 05 01 sts 0x0105, r24
va2=adc_maxmin(va_a,3);
324: 63 e0 ldi r22, 0x03 ; 3
326: 89 e9 ldi r24, 0x99 ; 153
328: 90 e0 ldi r25, 0x00 ; 0
32a: 0e 94 e6 00 call 0x1cc <adc_maxmin>
32e: 90 93 ae 00 sts 0x00AE, r25
332: 80 93 ad 00 sts 0x00AD, r24
y=0;
336: 10 92 83 00 sts 0x0083, r1
33a: 08 95 ret
0000033c <__vector_14>:
}
}
SIGNAL(SIG_ADC)
{
33c: 1f 92 push r1
33e: 0f 92 push r0
340: 0f b6 in r0, 0x3f ; 63
342: 0f 92 push r0
344: 11 24 eor r1, r1
346: 8f 93 push r24
348: 9f 93 push r25
if(ADMUX==0xC0){ADMUX=0xC1;adc_1=ADC;return;}
34a: 87 b1 in r24, 0x07 ; 7
34c: 80 3c cpi r24, 0xC0 ; 192
34e: 49 f4 brne .+18 ; 0x362 <__vector_14+0x26>
350: 81 ec ldi r24, 0xC1 ; 193
352: 87 b9 out 0x07, r24 ; 7
354: 84 b1 in r24, 0x04 ; 4
356: 95 b1 in r25, 0x05 ; 5
358: 90 93 c1 00 sts 0x00C1, r25
35c: 80 93 c0 00 sts 0x00C0, r24
360: 0b c0 rjmp .+22 ; 0x378 <__vector_14+0x3c>
if(ADMUX==0xC1){ADMUX=0xC0;adc_2=ADC;return;}
362: 87 b1 in r24, 0x07 ; 7
364: 81 3c cpi r24, 0xC1 ; 193
366: 41 f4 brne .+16 ; 0x378 <__vector_14+0x3c>
368: 80 ec ldi r24, 0xC0 ; 192
36a: 87 b9 out 0x07, r24 ; 7
36c: 84 b1 in r24, 0x04 ; 4
36e: 95 b1 in r25, 0x05 ; 5
370: 90 93 bf 00 sts 0x00BF, r25
374: 80 93 be 00 sts 0x00BE, r24
378: 9f 91 pop r25
37a: 8f 91 pop r24
37c: 0f 90 pop r0
37e: 0f be out 0x3f, r0 ; 63
380: 0f 90 pop r0
382: 1f 90 pop r1
384: 18 95 reti
00000386 <__vector_9>:
//if(ADMUX==0xC2){ADMUX=0xC0;adc_3=ADC;return;}
}
SIGNAL(SIG_OVERFLOW0)
{
386: 1f 92 push r1
388: 0f 92 push r0
38a: 0f b6 in r0, 0x3f ; 63
38c: 0f 92 push r0
38e: 11 24 eor r1, r1
390: 2f 93 push r18
392: 3f 93 push r19
394: 4f 93 push r20
396: 5f 93 push r21
398: 6f 93 push r22
39a: 7f 93 push r23
39c: 8f 93 push r24
39e: 9f 93 push r25
3a0: af 93 push r26
3a2: bf 93 push r27
3a4: ef 93 push r30
3a6: ff 93 push r31
ADCSRA|=_BV(ADSC);
3a8: 36 9a sbi 0x06, 6 ; 6
uch tep;
tep=key_in&0xc0;
3aa: 99 b3 in r25, 0x19 ; 25
3ac: 90 95 com r25
3ae: 90 7c andi r25, 0xC0 ; 192
ks2=tep;
3b0: 90 93 96 00 sts 0x0096, r25
xiao=tep;
3b4: 90 93 88 00 sts 0x0088, r25
if(tep){
3b8: 99 23 and r25, r25
3ba: 59 f0 breq .+22 ; 0x3d2 <__vector_9+0x4c>
if(ks==10){tep2=tep;ks++;}
3bc: 80 91 8a 00 lds r24, 0x008A
3c0: 28 2f mov r18, r24
3c2: 2f 5f subi r18, 0xFF ; 255
3c4: 8a 30 cpi r24, 0x0A ; 10
3c6: 11 f4 brne .+4 ; 0x3cc <__vector_9+0x46>
3c8: 90 93 eb 00 sts 0x00EB, r25
else ks++;
3cc: 20 93 8a 00 sts 0x008A, r18
3d0: 0d c0 rjmp .+26 ; 0x3ec <__vector_9+0x66>
}
else{ks=0;if(tep2){key=tep2;make=1;}tep2=0;}
3d2: 90 93 8a 00 sts 0x008A, r25
3d6: 80 91 eb 00 lds r24, 0x00EB
3da: 88 23 and r24, r24
3dc: 29 f0 breq .+10 ; 0x3e8 <__vector_9+0x62>
3de: 80 93 d6 00 sts 0x00D6, r24
3e2: 81 e0 ldi r24, 0x01 ; 1
3e4: 80 93 07 01 sts 0x0107, r24
3e8: 90 93 eb 00 sts 0x00EB, r25
if(ch_s){
3ec: 80 91 78 00 lds r24, 0x0078
3f0: 88 23 and r24, r24
3f2: f9 f0 breq .+62 ; 0x432 <__vector_9+0xac>
w_by(*ch_sp);ch_s=0;
3f4: e0 91 ba 00 lds r30, 0x00BA
3f8: f0 91 bb 00 lds r31, 0x00BB
3fc: 80 81 ld r24, Z
3fe: 0e 94 79 00 call 0xf2 <w_by>
402: 10 92 78 00 sts 0x0078, r1
if(ch_x<15){ch_x++;ch_sp++;}
406: 80 91 89 00 lds r24, 0x0089
40a: 8f 30 cpi r24, 0x0F ; 15
40c: 48 f4 brcc .+18 ; 0x420 <__vector_9+0x9a>
40e: 8f 5f subi r24, 0xFF ; 255
410: 80 93 89 00 sts 0x0089, r24
414: 80 91 ba 00 lds r24, 0x00BA
418: 90 91 bb 00 lds r25, 0x00BB
41c: 01 96 adiw r24, 0x01 ; 1
41e: 04 c0 rjmp .+8 ; 0x428 <__vector_9+0xa2>
else {ch_x=0;ch_sp=&xy_ch;}
420: 10 92 89 00 sts 0x0089, r1
424: 8e ee ldi r24, 0xEE ; 238
426: 90 e0 ldi r25, 0x00 ; 0
428: 90 93 bb 00 sts 0x00BB, r25
42c: 80 93 ba 00 sts 0x00BA, r24
430: 07 c0 rjmp .+14 ; 0x440 <__vector_9+0xba>
}
else {xini(ch_x);ch_s=1;}
432: 80 91 89 00 lds r24, 0x0089
436: 0e 94 9b 00 call 0x136 <xini>
43a: 81 e0 ldi r24, 0x01 ; 1
43c: 80 93 78 00 sts 0x0078, r24
if(di1){DIL;di1--;}//第一次响
440: 80 91 03 01 lds r24, 0x0103
444: 88 23 and r24, r24
446: 29 f0 breq .+10 ; 0x452 <__vector_9+0xcc>
448: 97 98 cbi 0x12, 7 ; 18
44a: 81 50 subi r24, 0x01 ; 1
44c: 80 93 03 01 sts 0x0103, r24
450: 12 c0 rjmp .+36 ; 0x476 <__stack+0x17>
else {
if(di2){di2--;DIH;}//第二次延时
452: 80 91 af 00 lds r24, 0x00AF
456: 88 23 and r24, r24
458: 21 f0 breq .+8 ; 0x462 <__stack+0x3>
45a: 81 50 subi r24, 0x01 ; 1
45c: 80 93 af 00 sts 0x00AF, r24
460: 09 c0 rjmp .+18 ; 0x474 <__stack+0x15>
else {if(di3){di3--;DIL;}else DIH;}//第三次响
462: 80 91 bc 00 lds r24, 0x00BC
466: 88 23 and r24, r24
468: 29 f0 breq .+10 ; 0x474 <__stack+0x15>
46a: 81 50 subi r24, 0x01 ; 1
46c: 80 93 bc 00 sts 0x00BC, r24
470: 97 98 cbi 0x12, 7 ; 18
472: 01 c0 rjmp .+2 ; 0x476 <__stack+0x17>
474: 97 9a sbi 0x12, 7 ; 18
}
TCNT0=250;//20MS
476: 8a ef ldi r24, 0xFA ; 250
478: 82 bf out 0x32, r24 ; 50
47a: ff 91 pop r31
47c: ef 91 pop r30
47e: bf 91 pop r27
480: af 91 pop r26
482: 9f 91 pop r25
484: 8f 91 pop r24
486: 7f 91 pop r23
488: 6f 91 pop r22
48a: 5f 91 pop r21
48c: 4f 91 pop r20
48e: 3f 91 pop r19
490: 2f 91 pop r18
492: 0f 90 pop r0
494: 0f be out 0x3f, r0 ; 63
496: 0f 90 pop r0
498: 1f 90 pop r1
49a: 18 95 reti
0000049c <__vector_1>:
// power++;
}
uch s_up;
uch s_down;
SIGNAL(SIG_INTERRUPT0){
49c: 1f 92 push r1
49e: 0f 92 push r0
4a0: 0f b6 in r0, 0x3f ; 63
4a2: 0f 92 push r0
4a4: 11 24 eor r1, r1
4a6: 2f 93 push r18
4a8: 8f 93 push r24
4aa: 9f 93 push r25
make=1;
4ac: 21 e0 ldi r18, 0x01 ; 1
4ae: 20 93 07 01 sts 0x0107, r18
if((PIND&0x0c)==0x0c)return;
4b2: 80 b3 in r24, 0x10 ; 16
4b4: 99 27 eor r25, r25
4b6: 8c 70 andi r24, 0x0C ; 12
4b8: 90 70 andi r25, 0x00 ; 0
4ba: 0c 97 sbiw r24, 0x0c ; 12
4bc: 59 f0 breq .+22 ; 0x4d4 <__vector_1+0x38>
if(s_down){s_down=0;return;}
4be: 80 91 00 01 lds r24, 0x0100
4c2: 88 23 and r24, r24
4c4: 19 f0 breq .+6 ; 0x4cc <__vector_1+0x30>
4c6: 10 92 00 01 sts 0x0100, r1
4ca: 04 c0 rjmp .+8 ; 0x4d4 <__vector_1+0x38>
s_up=1;
4cc: 20 93 b8 00 sts 0x00B8, r18
int_=1;
4d0: 20 93 04 01 sts 0x0104, r18
4d4: 9f 91 pop r25
4d6: 8f 91 pop r24
4d8: 2f 91 pop r18
4da: 0f 90 pop r0
4dc: 0f be out 0x3f, r0 ; 63
4de: 0f 90 pop r0
4e0: 1f 90 pop r1
4e2: 18 95 reti
000004e4 <__vector_2>:
}
SIGNAL(SIG_INTERRUPT1){
4e4: 1f 92 push r1
4e6: 0f 92 push r0
4e8: 0f b6 in r0, 0x3f ; 63
4ea: 0f 92 push r0
4ec: 11 24 eor r1, r1
4ee: 2f 93 push r18
4f0: 8f 93 push r24
4f2: 9f 93 push r25
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -