📄 main.lss
字号:
568: 0e 94 dd 21 call 0x43ba ; 0x43ba <__fixsfsi>
56c: dc 01 movw r26, r24
56e: cb 01 movw r24, r22
570: 8a 8f std Y+26, r24 ; 0x1a
572: 8a 8d ldd r24, Y+26 ; 0x1a
574: 8d 8b std Y+21, r24 ; 0x15
576: 8d 89 ldd r24, Y+21 ; 0x15
578: 8a 95 dec r24
57a: f1 f7 brne .-4 ; 0x578 <xWriteCH375Data+0x128>
57c: 8d 8b std Y+21, r24 ; 0x15
mDelay1uS( );
mDelay1uS( ); // 至少延时1uS
*(volatile unsigned char *)CH375_DAT_PORT_ADDR = mData; //通过并口直接读写CH375而非普通I/O模拟
57e: e0 e2 ldi r30, 0x20 ; 32
580: f0 e8 ldi r31, 0x80 ; 128
582: 89 a5 ldd r24, Y+41 ; 0x29
584: 80 83 st Z, r24
586: 80 e0 ldi r24, 0x00 ; 0
588: 90 e0 ldi r25, 0x00 ; 0
58a: a0 e8 ldi r26, 0x80 ; 128
58c: bf e3 ldi r27, 0x3F ; 63
58e: 8c 87 std Y+12, r24 ; 0x0c
590: 9d 87 std Y+13, r25 ; 0x0d
592: ae 87 std Y+14, r26 ; 0x0e
594: bf 87 std Y+15, r27 ; 0x0f
void
_delay_us(double __us)
{
uint8_t __ticks;
double __tmp = ((F_CPU) / 3e6) * __us;
596: 2a ef ldi r18, 0xFA ; 250
598: 3d ee ldi r19, 0xED ; 237
59a: 4b e6 ldi r20, 0x6B ; 107
59c: 50 e4 ldi r21, 0x40 ; 64
59e: 6c 85 ldd r22, Y+12 ; 0x0c
5a0: 7d 85 ldd r23, Y+13 ; 0x0d
5a2: 8e 85 ldd r24, Y+14 ; 0x0e
5a4: 9f 85 ldd r25, Y+15 ; 0x0f
5a6: 0e 94 48 22 call 0x4490 ; 0x4490 <__mulsf3>
5aa: dc 01 movw r26, r24
5ac: cb 01 movw r24, r22
5ae: 89 8b std Y+17, r24 ; 0x11
5b0: 9a 8b std Y+18, r25 ; 0x12
5b2: ab 8b std Y+19, r26 ; 0x13
5b4: bc 8b std Y+20, r27 ; 0x14
if (__tmp < 1.0)
5b6: 20 e0 ldi r18, 0x00 ; 0
5b8: 30 e0 ldi r19, 0x00 ; 0
5ba: 40 e8 ldi r20, 0x80 ; 128
5bc: 5f e3 ldi r21, 0x3F ; 63
5be: 69 89 ldd r22, Y+17 ; 0x11
5c0: 7a 89 ldd r23, Y+18 ; 0x12
5c2: 8b 89 ldd r24, Y+19 ; 0x13
5c4: 9c 89 ldd r25, Y+20 ; 0x14
5c6: 0e 94 f8 21 call 0x43f0 ; 0x43f0 <__eqsf2>
5ca: 88 23 and r24, r24
5cc: 0c f0 brlt .+2 ; 0x5d0 <xWriteCH375Data+0x180>
5ce: 03 c0 rjmp .+6 ; 0x5d6 <xWriteCH375Data+0x186>
__ticks = 1;
5d0: 81 e0 ldi r24, 0x01 ; 1
5d2: 88 8b std Y+16, r24 ; 0x10
5d4: 18 c0 rjmp .+48 ; 0x606 <xWriteCH375Data+0x1b6>
else if (__tmp > 255)
5d6: 20 e0 ldi r18, 0x00 ; 0
5d8: 30 e0 ldi r19, 0x00 ; 0
5da: 4f e7 ldi r20, 0x7F ; 127
5dc: 53 e4 ldi r21, 0x43 ; 67
5de: 69 89 ldd r22, Y+17 ; 0x11
5e0: 7a 89 ldd r23, Y+18 ; 0x12
5e2: 8b 89 ldd r24, Y+19 ; 0x13
5e4: 9c 89 ldd r25, Y+20 ; 0x14
5e6: 0e 94 fb 21 call 0x43f6 ; 0x43f6 <__gesf2>
5ea: 18 16 cp r1, r24
5ec: 0c f0 brlt .+2 ; 0x5f0 <xWriteCH375Data+0x1a0>
5ee: 02 c0 rjmp .+4 ; 0x5f4 <xWriteCH375Data+0x1a4>
__ticks = 0; /* i.e. 256 */
5f0: 18 8a std Y+16, r1 ; 0x10
5f2: 09 c0 rjmp .+18 ; 0x606 <xWriteCH375Data+0x1b6>
else
__ticks = (uint8_t)__tmp;
5f4: 69 89 ldd r22, Y+17 ; 0x11
5f6: 7a 89 ldd r23, Y+18 ; 0x12
5f8: 8b 89 ldd r24, Y+19 ; 0x13
5fa: 9c 89 ldd r25, Y+20 ; 0x14
5fc: 0e 94 dd 21 call 0x43ba ; 0x43ba <__fixsfsi>
600: dc 01 movw r26, r24
602: cb 01 movw r24, r22
604: 88 8b std Y+16, r24 ; 0x10
606: 88 89 ldd r24, Y+16 ; 0x10
608: 8b 87 std Y+11, r24 ; 0x0b
60a: 8b 85 ldd r24, Y+11 ; 0x0b
60c: 8a 95 dec r24
60e: f1 f7 brne .-4 ; 0x60c <xWriteCH375Data+0x1bc>
610: 8b 87 std Y+11, r24 ; 0x0b
612: 80 e0 ldi r24, 0x00 ; 0
614: 90 e0 ldi r25, 0x00 ; 0
616: a0 e8 ldi r26, 0x80 ; 128
618: bf e3 ldi r27, 0x3F ; 63
61a: 8a 83 std Y+2, r24 ; 0x02
61c: 9b 83 std Y+3, r25 ; 0x03
61e: ac 83 std Y+4, r26 ; 0x04
620: bd 83 std Y+5, r27 ; 0x05
622: 2a ef ldi r18, 0xFA ; 250
624: 3d ee ldi r19, 0xED ; 237
626: 4b e6 ldi r20, 0x6B ; 107
628: 50 e4 ldi r21, 0x40 ; 64
62a: 6a 81 ldd r22, Y+2 ; 0x02
62c: 7b 81 ldd r23, Y+3 ; 0x03
62e: 8c 81 ldd r24, Y+4 ; 0x04
630: 9d 81 ldd r25, Y+5 ; 0x05
632: 0e 94 48 22 call 0x4490 ; 0x4490 <__mulsf3>
636: dc 01 movw r26, r24
638: cb 01 movw r24, r22
63a: 8f 83 std Y+7, r24 ; 0x07
63c: 98 87 std Y+8, r25 ; 0x08
63e: a9 87 std Y+9, r26 ; 0x09
640: ba 87 std Y+10, r27 ; 0x0a
642: 20 e0 ldi r18, 0x00 ; 0
644: 30 e0 ldi r19, 0x00 ; 0
646: 40 e8 ldi r20, 0x80 ; 128
648: 5f e3 ldi r21, 0x3F ; 63
64a: 6f 81 ldd r22, Y+7 ; 0x07
64c: 78 85 ldd r23, Y+8 ; 0x08
64e: 89 85 ldd r24, Y+9 ; 0x09
650: 9a 85 ldd r25, Y+10 ; 0x0a
652: 0e 94 f8 21 call 0x43f0 ; 0x43f0 <__eqsf2>
656: 88 23 and r24, r24
658: 0c f0 brlt .+2 ; 0x65c <xWriteCH375Data+0x20c>
65a: 03 c0 rjmp .+6 ; 0x662 <xWriteCH375Data+0x212>
65c: 81 e0 ldi r24, 0x01 ; 1
65e: 8e 83 std Y+6, r24 ; 0x06
660: 18 c0 rjmp .+48 ; 0x692 <xWriteCH375Data+0x242>
662: 20 e0 ldi r18, 0x00 ; 0
664: 30 e0 ldi r19, 0x00 ; 0
666: 4f e7 ldi r20, 0x7F ; 127
668: 53 e4 ldi r21, 0x43 ; 67
66a: 6f 81 ldd r22, Y+7 ; 0x07
66c: 78 85 ldd r23, Y+8 ; 0x08
66e: 89 85 ldd r24, Y+9 ; 0x09
670: 9a 85 ldd r25, Y+10 ; 0x0a
672: 0e 94 fb 21 call 0x43f6 ; 0x43f6 <__gesf2>
676: 18 16 cp r1, r24
678: 0c f0 brlt .+2 ; 0x67c <xWriteCH375Data+0x22c>
67a: 02 c0 rjmp .+4 ; 0x680 <xWriteCH375Data+0x230>
67c: 1e 82 std Y+6, r1 ; 0x06
67e: 09 c0 rjmp .+18 ; 0x692 <xWriteCH375Data+0x242>
680: 6f 81 ldd r22, Y+7 ; 0x07
682: 78 85 ldd r23, Y+8 ; 0x08
684: 89 85 ldd r24, Y+9 ; 0x09
686: 9a 85 ldd r25, Y+10 ; 0x0a
688: 0e 94 dd 21 call 0x43ba ; 0x43ba <__fixsfsi>
68c: dc 01 movw r26, r24
68e: cb 01 movw r24, r22
690: 8e 83 std Y+6, r24 ; 0x06
692: 8e 81 ldd r24, Y+6 ; 0x06
694: 89 83 std Y+1, r24 ; 0x01
696: 89 81 ldd r24, Y+1 ; 0x01
698: 8a 95 dec r24
69a: f1 f7 brne .-4 ; 0x698 <xWriteCH375Data+0x248>
69c: 89 83 std Y+1, r24 ; 0x01
69e: a9 96 adiw r28, 0x29 ; 41
6a0: 0f b6 in r0, 0x3f ; 63
6a2: f8 94 cli
6a4: de bf out 0x3e, r29 ; 62
6a6: 0f be out 0x3f, r0 ; 63
6a8: cd bf out 0x3d, r28 ; 61
6aa: df 91 pop r29
6ac: cf 91 pop r28
6ae: 08 95 ret
000006b0 <xReadCH375Data>:
/*
PORTA = mData; // 向CH375的并口输出数据
DDRA = 0xFF; // 并口D0-D7输出
PORTB &= 0xF1; // 输出有效写控制信号, 写CH375芯片的数据端口, A0=0; CS=0; WR=0; RD=1;
DDRA = 0xFF; // 该操作无意义,仅作延时,CH375要求读写脉冲宽度大于100nS
PORTB |= 0x07; // 输出无效的控制信号, 完成操作CH375芯片, A0=0; CS=1; WR=1; RD=1;
DDRA = 0x00; // 禁止数据输出
*/
mDelay1uS( );
mDelay1uS( ); // 至少延时1.2uS
}
UINT8 xReadCH375Data( void ) /* 外部定义的被CH375程序库调用的子程序,从CH375读数据 */
{
6b0: cf 93 push r28
6b2: df 93 push r29
6b4: cd b7 in r28, 0x3d ; 61
6b6: de b7 in r29, 0x3e ; 62
6b8: 6f 97 sbiw r28, 0x1f ; 31
6ba: 0f b6 in r0, 0x3f ; 63
6bc: f8 94 cli
6be: de bf out 0x3e, r29 ; 62
6c0: 0f be out 0x3f, r0 ; 63
6c2: cd bf out 0x3d, r28 ; 61
UINT8 mData;
mData = *(volatile unsigned char *)CH375_DAT_PORT_ADDR; //通过并口直接读写CH375而非普通I/O模拟
6c4: e0 e2 ldi r30, 0x20 ; 32
6c6: f0 e8 ldi r31, 0x80 ; 128
6c8: 80 81 ld r24, Z
6ca: 8f 8f std Y+31, r24 ; 0x1f
6cc: 80 e0 ldi r24, 0x00 ; 0
6ce: 90 e0 ldi r25, 0x00 ; 0
6d0: a0 e8 ldi r26, 0x80 ; 128
6d2: bf e3 ldi r27, 0x3F ; 63
6d4: 8e 8b std Y+22, r24 ; 0x16
6d6: 9f 8b std Y+23, r25 ; 0x17
6d8: a8 8f std Y+24, r26 ; 0x18
6da: b9 8f std Y+25, r27 ; 0x19
void
_delay_us(double __us)
{
uint8_t __ticks;
double __tmp = ((F_CPU) / 3e6) * __us;
6dc: 2a ef ldi r18, 0xFA ; 250
6de: 3d ee ldi r19, 0xED ; 237
6e0: 4b e6 ldi r20, 0x6B ; 107
6e2: 50 e4 ldi r21, 0x40 ; 64
6e4: 6e 89 ldd r22, Y+22 ; 0x16
6e6: 7f 89 ldd r23, Y+23 ; 0x17
6e8: 88 8d ldd r24, Y+24 ; 0x18
6ea: 99 8d ldd r25, Y+25 ; 0x19
6ec: 0e 94 48 22 call 0x4490 ; 0x4490 <__mulsf3>
6f0: dc 01 movw r26, r24
6f2: cb 01 movw r24, r22
6f4: 8b 8f std Y+27, r24 ; 0x1b
6f6: 9c 8f std Y+28, r25 ; 0x1c
6f8: ad 8f std Y+29, r26 ; 0x1d
6fa: be 8f std Y+30, r27 ; 0x1e
if (__tmp < 1.0)
6fc: 20 e0 ldi r18, 0x00 ; 0
6fe: 30 e0 ldi r19, 0x00 ; 0
700: 40 e8 ldi r20, 0x80 ; 128
702: 5f e3 ldi r21, 0x3F ; 63
704: 6b 8d ldd r22, Y+27 ; 0x1b
706: 7c 8d ldd r23, Y+28 ; 0x1c
708: 8d 8d ldd r24, Y+29 ; 0x1d
70a: 9e 8d ldd r25, Y+30 ; 0x1e
70c: 0e 94 f8 21 call 0x43f0 ; 0x43f0 <__eqsf2>
710: 88 23 and r24, r24
712: 0c f0 brlt .+2 ; 0x716 <xReadCH375Data+0x66>
714: 03 c0 rjmp .+6 ; 0x71c <xReadCH375Data+0x6c>
__ticks = 1;
716: 81 e0 ldi r24, 0x01 ; 1
718: 8a 8f std Y+26, r24 ; 0x1a
71a: 18 c0 rjmp .+48 ; 0x74c <xReadCH375Data+0x9c>
else if (__tmp > 255)
71c: 20 e0 ldi r18, 0x00 ; 0
71e: 30 e0 ldi r19, 0x00 ; 0
720: 4f e7 ldi r20, 0x7F ; 127
722: 53 e4 ldi r21, 0x43 ; 67
724: 6b 8d ldd r22, Y+27 ; 0x1b
726: 7c 8d ldd r23, Y+28 ; 0x1c
728: 8d 8d ldd r24, Y+29 ; 0x1d
72a: 9e 8d ldd r25, Y+30 ; 0x1e
72c: 0e 94 fb 21 call 0x43f6 ; 0x43f6 <__gesf2>
730: 18 16 cp r1, r24
732: 0c f0 brlt .+2 ; 0x736 <xReadCH375Data+0x86>
734: 02 c0 rjmp .+4 ; 0x73a <xReadCH375Data+0x8a>
__ticks = 0; /* i.e. 256 */
736: 1a 8e std Y+26, r1 ; 0x1a
738: 09 c0 rjmp .+18 ; 0x74c <xReadCH375Data+0x9c>
else
__ticks = (uint8_t)__tmp;
73a: 6b 8d ldd r22, Y+27 ; 0x1b
73c: 7c 8d ldd r23, Y+28 ; 0x1c
73e: 8d 8d ldd r24, Y+29 ; 0x1d
740: 9e 8d ldd r25, Y+30 ; 0x1e
742: 0e 94 dd 21 call 0x43ba ; 0x43ba <__fixsfsi>
746: dc 01 movw r26, r24
748: cb 01 movw r24, r22
74a: 8a 8f std Y+26, r24 ; 0x1a
74c: 8a 8d ldd r24, Y+26 ; 0x1a
74e: 8d 8b std Y+21, r24 ; 0x15
750: 8d 89 ldd r24, Y+21 ; 0x15
752: 8a 95 dec r24
754: f1 f7 brne .-4 ; 0x752 <xReadCH375Data+0xa2>
756: 8d 8b std Y+21, r24 ; 0x15
758: 80 e0 ldi r24, 0x00 ; 0
75a: 90 e0 ldi r25, 0x00 ; 0
75c: a0 e8 ldi r26, 0x80 ; 128
75e: bf e3 ldi r27, 0x3F ; 63
760: 8c 87 std Y+12, r24 ; 0x0c
762: 9d 87 std Y+13, r25 ; 0x0d
764: ae 87 std Y+14, r26 ; 0x0e
766: bf 87 std Y+15, r27 ; 0x0f
768: 2a ef ldi r18, 0xFA ; 250
76a: 3d ee ldi r19, 0xED ; 237
76c: 4b e6 ldi r20, 0x6B ; 107
76e: 50 e4 ldi r21, 0x40 ; 64
770: 6c 85 ldd r22, Y+12 ; 0x0c
772: 7d 85 ldd r23, Y+13 ; 0x0d
774: 8e 85 ldd r24, Y+14 ; 0x0e
776: 9f 85 ldd r25, Y+15 ; 0x0f
778: 0e 94 48 22 call 0x4490 ; 0x4490 <__mulsf3>
77c: dc 01 movw r26, r24
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -