📄 main.lss
字号:
MainStdControlInit();
2da: 0e 94 92 08 call 0x1124
MainStdControlStart();
2de: 0e 94 96 08 call 0x112c
EnableInterrupt();
2e2: 0e 94 9a 08 call 0x1134
while (1) {
OSHRunTask();
2e6: 0e 94 d6 08 call 0x11ac
2ea: fd cf rjmp .-6 ; 0x2e6
000002ec <ADCHPLInitPortmap>:
void ADCHPLInitPortmap(void)
{
{ uint8_t atomicState = AtomicStart();
2ec: 0e 94 a6 08 call 0x114c
2f0: 28 2f mov r18, r24
{
if (HPLADCM_init_portmap_done == FALSE) {
2f2: 80 91 63 01 lds r24, 0x0163
2f6: 88 23 and r24, r24
2f8: 91 f4 brne .+36 ; 0x31e
int i;
for (i = 0; i < OSH_ADC_PORTMAPSIZE; i++)
2fa: 80 e0 ldi r24, 0x00 ; 0
2fc: 90 e0 ldi r25, 0x00 ; 0
2fe: e5 e5 ldi r30, 0x55 ; 85
300: f1 e0 ldi r31, 0x01 ; 1
adcPortmap[i] = i;
302: 81 93 st Z+, r24
304: 01 96 adiw r24, 0x01 ; 1
306: 8c 30 cpi r24, 0x0C ; 12
308: 91 05 cpc r25, r1
30a: dc f3 brlt .-10 ; 0x302
adcPortmap[OS_ADC_BANDGAP_PORT] = OSH_ACTUAL_BANDGAP_PORT;
30c: 8e e1 ldi r24, 0x1E ; 30
30e: 80 93 5f 01 sts 0x015F, r24
adcPortmap[OS_ADC_GND_PORT] = OSH_ACTUAL_GND_PORT;
312: 8f e1 ldi r24, 0x1F ; 31
314: 80 93 60 01 sts 0x0160, r24
HPLADCM_init_portmap_done = TRUE;
318: 81 e0 ldi r24, 0x01 ; 1
31a: 80 93 63 01 sts 0x0163, r24
}
}
AtomicEnd(atomicState); }
31e: 82 2f mov r24, r18
320: 0e 94 a4 08 call 0x1148
324: 08 95 ret
00000326 <ADCHPLInit>:
326: 0e 94 76 01 call 0x2ec
32a: 0e 94 a6 08 call 0x114c
32e: 9e e0 ldi r25, 0x0E ; 14
330: 96 b9 out 0x06, r25 ; 6
332: 17 b8 out 0x07, r1 ; 7
334: 0e 94 a4 08 call 0x1148
338: 81 e0 ldi r24, 0x01 ; 1
33a: 90 e0 ldi r25, 0x00 ; 0
33c: 08 95 ret
0000033e <ADCControlInit>:
33e: 0e 94 a6 08 call 0x114c
342: 10 92 65 01 sts 0x0165, r1
346: 10 92 64 01 sts 0x0164, r1
34a: 10 92 67 01 sts 0x0167, r1
34e: 10 92 66 01 sts 0x0166, r1
352: 10 92 62 01 sts 0x0162, r1
356: 10 92 61 01 sts 0x0161, r1
35a: 0e 94 a4 08 call 0x1148
35e: 0e 94 93 01 call 0x326
362: 99 27 eor r25, r25
364: 08 95 ret
00000366 <ADCBindPort>:
366: 1f 93 push r17
368: cf 93 push r28
36a: c8 2f mov r28, r24
36c: 16 2f mov r17, r22
36e: 8c 30 cpi r24, 0x0C ; 12
370: 90 f4 brcc .+36 ; 0x396
372: 8a 30 cpi r24, 0x0A ; 10
374: 81 f0 breq .+32 ; 0x396
376: 8b 30 cpi r24, 0x0B ; 11
378: 71 f0 breq .+28 ; 0x396
37a: 0e 94 76 01 call 0x2ec
37e: 0e 94 a6 08 call 0x114c
382: ec 2f mov r30, r28
384: ff 27 eor r31, r31
386: eb 5a subi r30, 0xAB ; 171
388: fe 4f sbci r31, 0xFE ; 254
38a: 10 83 st Z, r17
38c: 0e 94 a4 08 call 0x1148
390: 81 e0 ldi r24, 0x01 ; 1
392: 90 e0 ldi r25, 0x00 ; 0
394: 02 c0 rjmp .+4 ; 0x39a
396: 80 e0 ldi r24, 0x00 ; 0
398: 90 e0 ldi r25, 0x00 ; 0
39a: cf 91 pop r28
39c: 1f 91 pop r17
39e: 08 95 ret
000003a0 <ADCDataReady>:
3a0: 28 2f mov r18, r24
3a2: 33 27 eor r19, r19
3a4: 21 30 cpi r18, 0x01 ; 1
3a6: 31 05 cpc r19, r1
3a8: 71 f0 breq .+28 ; 0x3c6
3aa: 22 30 cpi r18, 0x02 ; 2
3ac: 31 05 cpc r19, r1
3ae: 1c f4 brge .+6 ; 0x3b6
3b0: 23 2b or r18, r19
3b2: 29 f0 breq .+10 ; 0x3be
3b4: 10 c0 rjmp .+32 ; 0x3d6
3b6: 22 30 cpi r18, 0x02 ; 2
3b8: 31 05 cpc r19, r1
3ba: 49 f0 breq .+18 ; 0x3ce
3bc: 0c c0 rjmp .+24 ; 0x3d6
3be: cb 01 movw r24, r22
3c0: 0e 94 41 0b call 0x1682
3c4: 09 c0 rjmp .+18 ; 0x3d8
3c6: cb 01 movw r24, r22
3c8: 0e 94 df 0f call 0x1fbe
3cc: 05 c0 rjmp .+10 ; 0x3d8
3ce: cb 01 movw r24, r22
3d0: 0e 94 54 0f call 0x1ea8
3d4: 01 c0 rjmp .+2 ; 0x3d8
3d6: 80 e0 ldi r24, 0x00 ; 0
3d8: 99 27 eor r25, r25
3da: 08 95 ret
000003dc <ADCHPLSamplePort>:
}
void __attribute((signal)) __vector_21(void)
{
uint16_t data = * (volatile unsigned int *)(unsigned int )& * (volatile unsigned char *)(0x04 + 0x20);
data &= 0x3ff;
* (volatile unsigned char *)(0x06 + 0x20) |= 1 << 4;
* (volatile unsigned char *)(0x06 + 0x20) &= ~(1 << 7);
EnableInterrupt();
ADCHPLDataReady(data);
}
result_t ADCHPLSamplePort(uint8_t port)
{
3dc: 1f 93 push r17
3de: 18 2f mov r17, r24
{ uint8_t atomicState = AtomicStart();
3e0: 0e 94 a6 08 call 0x114c
{
* (volatile unsigned char *)(0x07 + 0x20) = adcPortmap[port] & 0x1F;
3e4: e5 e5 ldi r30, 0x55 ; 85
3e6: f1 e0 ldi r31, 0x01 ; 1
3e8: e1 0f add r30, r17
3ea: f1 1d adc r31, r1
3ec: 90 81 ld r25, Z
3ee: 9f 71 andi r25, 0x1F ; 31
3f0: 97 b9 out 0x07, r25 ; 7
}
AtomicEnd(atomicState); }
3f2: 0e 94 a4 08 call 0x1148
* (volatile unsigned char *)(0x06 + 0x20) |= 1 << 7;
3f6: 37 9a sbi 0x06, 7 ; 6
* (volatile unsigned char *)(0x06 + 0x20) |= 1 << 6;
3f8: 36 9a sbi 0x06, 6 ; 6
return SUCCESS;
} 3fa: 81 e0 ldi r24, 0x01 ; 1
3fc: 90 e0 ldi r25, 0x00 ; 0
3fe: 1f 91 pop r17
400: 08 95 ret
00000402 <ADCHPLDataReady>:
402: ef 92 push r14
404: ff 92 push r15
406: 0f 93 push r16
408: 1f 93 push r17
40a: cf 93 push r28
40c: df 93 push r29
40e: 8c 01 movw r16, r24
410: 0e 94 a6 08 call 0x114c
414: e8 2e mov r14, r24
416: f0 90 64 01 lds r15, 0x0164
41a: cf 2d mov r28, r15
41c: dd 27 eor r29, r29
41e: 41 e0 ldi r20, 0x01 ; 1
420: 50 e0 ldi r21, 0x00 ; 0
422: 9a 01 movw r18, r20
424: 0c 2e mov r0, r28
426: 02 c0 rjmp .+4 ; 0x42c
428: 22 0f add r18, r18
42a: 33 1f adc r19, r19
42c: 0a 94 dec r0
42e: e2 f7 brpl .-8 ; 0x428
430: 80 91 66 01 lds r24, 0x0166
434: 90 91 67 01 lds r25, 0x0167
438: 82 23 and r24, r18
43a: 93 23 and r25, r19
43c: 89 2b or r24, r25
43e: 61 f4 brne .+24 ; 0x458
440: 20 95 com r18
442: 30 95 com r19
444: 80 91 61 01 lds r24, 0x0161
448: 90 91 62 01 lds r25, 0x0162
44c: 82 23 and r24, r18
44e: 93 23 and r25, r19
450: 90 93 62 01 sts 0x0162, r25
454: 80 93 61 01 sts 0x0161, r24
458: 60 91 61 01 lds r22, 0x0161
45c: 70 91 62 01 lds r23, 0x0162
460: 61 15 cp r22, r1
462: 71 05 cpc r23, r1
464: 11 f1 breq .+68 ; 0x4aa
466: fa 01 movw r30, r20
468: 40 91 64 01 lds r20, 0x0164
46c: 50 91 65 01 lds r21, 0x0165
470: 4f 5f subi r20, 0xFF ; 255
472: 5f 4f sbci r21, 0xFF ; 255
474: 4c 30 cpi r20, 0x0C ; 12
476: 51 05 cpc r21, r1
478: 11 f0 breq .+4 ; 0x47e
47a: 9a 01 movw r18, r20
47c: 02 c0 rjmp .+4 ; 0x482
47e: 20 e0 ldi r18, 0x00 ; 0
480: 30 e0 ldi r19, 0x00 ; 0
482: a9 01 movw r20, r18
484: cf 01 movw r24, r30
486: 02 2e mov r0, r18
488: 02 c0 rjmp .+4 ; 0x48e
48a: 88 0f add r24, r24
48c: 99 1f adc r25, r25
48e: 0a 94 dec r0
490: e2 f7 brpl .-8 ; 0x48a
492: 86 23 and r24, r22
494: 97 23 and r25, r23
496: 89 2b or r24, r25
498: 59 f3 breq .-42 ; 0x470
49a: 30 93 65 01 sts 0x0165, r19
49e: 20 93 64 01 sts 0x0164, r18
4a2: 80 91 64 01 lds r24, 0x0164
4a6: 0e 94 ee 01 call 0x3dc
4aa: 8e 2d mov r24, r14
4ac: 0e 94 a4 08 call 0x1148
4b0: b8 01 movw r22, r16
4b2: 8f 2d mov r24, r15
4b4: 0e 94 d0 01 call 0x3a0
4b8: 18 2f mov r17, r24
4ba: 0e 94 a6 08 call 0x114c
4be: 68 2f mov r22, r24
4c0: 11 23 and r17, r17
4c2: c9 f4 brne .+50 ; 0x4f6
4c4: 41 e0 ldi r20, 0x01 ; 1
4c6: 50 e0 ldi r21, 0x00 ; 0
4c8: 02 c0 rjmp .+4 ; 0x4ce
4ca: 44 0f add r20, r20
4cc: 55 1f adc r21, r21
4ce: ca 95 dec r28
4d0: e2 f7 brpl .-8 ; 0x4ca
4d2: 20 91 66 01 lds r18, 0x0166
4d6: 30 91 67 01 lds r19, 0x0167
4da: c9 01 movw r24, r18
4dc: 84 23 and r24, r20
4de: 95 23 and r25, r21
4e0: 89 2b or r24, r25
4e2: 49 f0 breq .+18 ; 0x4f6
4e4: ca 01 movw r24, r20
4e6: 80 95 com r24
4e8: 90 95 com r25
4ea: 28 23 and r18, r24
4ec: 39 23 and r19, r25
4ee: 30 93 67 01 sts 0x0167, r19
4f2: 20 93 66 01 sts 0x0166, r18
4f6: 86 2f mov r24, r22
4f8: 0e 94 a4 08 call 0x1148
4fc: 81 e0 ldi r24, 0x01 ; 1
4fe: 90 e0 ldi r25, 0x00 ; 0
500: df 91 pop r29
502: cf 91 pop r28
504: 1f 91 pop r17
506: 0f 91 pop r16
508: ff 90 pop r15
50a: ef 90 pop r14
50c: 08 95 ret
0000050e <ADCStartGet>:
50e: cf 92 push r12
510: df 92 push r13
512: ef 92 push r14
514: ff 92 push r15
516: 0f 93 push r16
518: 1f 93 push r17
51a: cf 93 push r28
51c: df 93 push r29
51e: d8 2e mov r13, r24
520: 16 2f mov r17, r22
522: 01 e0 ldi r16, 0x01 ; 1
524: 6d 30 cpi r22, 0x0D ; 13
526: 18 f0 brcs .+6 ; 0x52e
528: 80 e0 ldi r24, 0x00 ; 0
52a: 90 e0 ldi r25, 0x00 ; 0
52c: 3b c0 rjmp .+118 ; 0x5a4
52e: e6 2e mov r14, r22
530: ff 24 eor r15, r15
532: c1 e0 ldi r28, 0x01 ; 1
534: d0 e0 ldi r29, 0x00 ; 0
536: 0e 2c mov r0, r14
538: 02 c0 rjmp .+4 ; 0x53e
53a: cc 0f add r28, r28
53c: dd 1f adc r29, r29
53e: 0a 94 dec r0
540: e2 f7 brpl .-8 ; 0x53a
542: 0e 94 a6 08 call 0x114c
546: c8 2e mov r12, r24
548: 20 91 61 01 lds r18, 0x0161
54c: 30 91 62 01 lds r19, 0x0162
550: ce 01 movw r24, r28
552: 82 23 and r24, r18
554: 93 23 and r25, r19
556: 89 2b or r24, r25
558: 11 f0 breq .+4 ; 0x55e
55a: 00 e0 ldi r16, 0x00 ; 0
55c: 1e c0 rjmp .+60 ; 0x59a
55e: c9 01 movw r24, r18
560: 8c 2b or r24, r28
562: 9d 2b or r25, r29
564: 90 93 62 01 sts 0x0162, r25
568: 80 93 61 01 sts 0x0161, r24
56c: 82 e0 ldi r24, 0x02 ; 2
56e: d8 16 cp r13, r24
570: 51 f4 brne .+20 ; 0x586
572: 80 91 66 01 lds r24, 0x0166
576: 90 91 67 01 lds r25, 0x0167
57a: 8c 2b or r24, r28
57c: 9d 2b or r25, r29
57e: 90 93 67 01 sts 0x0167, r25
582: 80 93 66 01 sts 0x0166, r24
586: 23 2b or r18, r19
588: 41 f4 brne .+16 ; 0x59a
58a: f0 92 65 01 sts 0x0165, r15
58e: e0 92 64 01 sts 0x0164, r14
592: 81 2f mov r24, r17
594: 0e 94 ee 01 call 0x3dc
598: 08 2f mov r16, r24
59a: 8c 2d mov r24, r12
59c: 0e 94 a4 08 call 0x1148
5a0: 80 2f mov r24, r16
5a2: 99 27 eor r25, r25
5a4: df 91 pop r29
5a6: cf 91 pop r28
5a8: 1f 91 pop r17
5aa: 0f 91 pop r16
5ac: ff 90 pop r15
5ae: ef 90 pop r14
5b0: df 90 pop r13
5b2: cf 90 pop r12
5b4: 08 95 ret
000005b6 <ADCGetData>:
5b6: 68 2f mov r22, r24
5b8: 81 e0 ldi r24, 0x01 ; 1
5ba: 0e 94 87 02 call 0x50e
5be: 99 27 eor r25, r25
5c0: 08 95 ret
000005c2 <__vector_21>:
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -