📄 yt_temep.lst
字号:
\ 000000AE 0121 MOVS R1,#+1
\ 000000B0 227B LDRB R2,[R4, #+12]
\ 000000B2 9140 LSLS R1,R1,R2
\ 000000B4 0143 ORRS R1,R1,R0
\ 000000B6 A068 LDR R0,[R4, #+8]
\ 000000B8 C160 STR R1,[R0, #+12]
99 delay(20);
\ 000000BA 1420 MOVS R0,#+20
\ 000000BC ........ BL delay
100 Clr_bit((IO_Tem->IOC)->ODR,IO_Tem->IO_C);
\ 000000C0 A068 LDR R0,[R4, #+8]
\ 000000C2 C068 LDR R0,[R0, #+12]
\ 000000C4 0121 MOVS R1,#+1
\ 000000C6 227B LDRB R2,[R4, #+12]
\ 000000C8 9140 LSLS R1,R1,R2
\ 000000CA 8843 BICS R0,R0,R1
\ 000000CC A168 LDR R1,[R4, #+8]
\ 000000CE C860 STR R0,[R1, #+12]
101 delay(20);
\ 000000D0 1420 MOVS R0,#+20
\ 000000D2 ........ BL delay
102 }
\ 000000D6 6D1C ADDS R5,R5,#+1
\ 000000D8 9AE7 B.N ??Read_SHT_0
103 GPIO_InOut(IO_Tem->IOD,1<<IO_Tem->IO_D,1,GPIO_Mode_Out_PP);
\ ??Read_SHT_1:
\ 000000DA 1023 MOVS R3,#+16
\ 000000DC 0122 MOVS R2,#+1
\ 000000DE 0121 MOVS R1,#+1
\ 000000E0 2079 LDRB R0,[R4, #+4]
\ 000000E2 8140 LSLS R1,R1,R0
\ 000000E4 89B2 UXTH R1,R1 ;; ZeroExtS R1,R1,#+16,#+16
\ 000000E6 2068 LDR R0,[R4, #+0]
\ 000000E8 ........ BL GPIO_InOut
104 delay(20);
\ 000000EC 1420 MOVS R0,#+20
\ 000000EE ........ BL delay
105 Set_bit((IO_Tem->IOD)->ODR,IO_Tem->IO_D);
\ 000000F2 2068 LDR R0,[R4, #+0]
\ 000000F4 C068 LDR R0,[R0, #+12]
\ 000000F6 0121 MOVS R1,#+1
\ 000000F8 2279 LDRB R2,[R4, #+4]
\ 000000FA 9140 LSLS R1,R1,R2
\ 000000FC 0143 ORRS R1,R1,R0
\ 000000FE 2068 LDR R0,[R4, #+0]
\ 00000100 C160 STR R1,[R0, #+12]
106 delay(20);
\ 00000102 1420 MOVS R0,#+20
\ 00000104 ........ BL delay
107 Set_bit((IO_Tem->IOC)->ODR,IO_Tem->IO_C);
\ 00000108 A068 LDR R0,[R4, #+8]
\ 0000010A C068 LDR R0,[R0, #+12]
\ 0000010C 0121 MOVS R1,#+1
\ 0000010E 227B LDRB R2,[R4, #+12]
\ 00000110 9140 LSLS R1,R1,R2
\ 00000112 0143 ORRS R1,R1,R0
\ 00000114 A068 LDR R0,[R4, #+8]
\ 00000116 C160 STR R1,[R0, #+12]
108 delay(20);
\ 00000118 1420 MOVS R0,#+20
\ 0000011A ........ BL delay
109 Clr_bit((IO_Tem->IOC)->ODR,IO_Tem->IO_C);
\ 0000011E A068 LDR R0,[R4, #+8]
\ 00000120 C068 LDR R0,[R0, #+12]
\ 00000122 0121 MOVS R1,#+1
\ 00000124 227B LDRB R2,[R4, #+12]
\ 00000126 9140 LSLS R1,R1,R2
\ 00000128 8843 BICS R0,R0,R1
\ 0000012A A168 LDR R1,[R4, #+8]
\ 0000012C C860 STR R0,[R1, #+12]
110 x=0x80; //如是8位x=0x80,12位则x=0
\ 0000012E 8020 MOVS R0,#+128
\ 00000130 0700 MOVS R7,R0
111 if(xyz==0)x=crc8(3,x); //Tempertion
\ 00000132 4046 MOV R0,R8
\ 00000134 C0B2 UXTB R0,R0 ;; ZeroExtS R0,R0,#+24,#+24
\ 00000136 0028 CMP R0,#+0
\ 00000138 06D1 BNE.N ??Read_SHT_5
\ 0000013A 3900 MOVS R1,R7
\ 0000013C C9B2 UXTB R1,R1 ;; ZeroExtS R1,R1,#+24,#+24
\ 0000013E 0320 MOVS R0,#+3
\ 00000140 ........ BL crc8
\ 00000144 0700 MOVS R7,R0
\ 00000146 05E0 B.N ??Read_SHT_6
112 else x=crc8(5,x); //RH
\ ??Read_SHT_5:
\ 00000148 3900 MOVS R1,R7
\ 0000014A C9B2 UXTB R1,R1 ;; ZeroExtS R1,R1,#+24,#+24
\ 0000014C 0520 MOVS R0,#+5
\ 0000014E ........ BL crc8
\ 00000152 0700 MOVS R7,R0
113 y=(Int8U)(x1_data>>16);
\ ??Read_SHT_6:
\ 00000154 300C LSRS R0,R6,#+16
\ 00000156 8DF80000 STRB R0,[SP, #+0]
114 x=crc8(y,x);//第一字节,命令字节
\ 0000015A 3900 MOVS R1,R7
\ 0000015C C9B2 UXTB R1,R1 ;; ZeroExtS R1,R1,#+24,#+24
\ 0000015E 9DF80000 LDRB R0,[SP, #+0]
\ 00000162 ........ BL crc8
\ 00000166 0700 MOVS R7,R0
115 y=(Int8U)(x1_data>>8);//
\ 00000168 300A LSRS R0,R6,#+8
\ 0000016A 8DF80000 STRB R0,[SP, #+0]
116 x=crc8(y,x);
\ 0000016E 3900 MOVS R1,R7
\ 00000170 C9B2 UXTB R1,R1 ;; ZeroExtS R1,R1,#+24,#+24
\ 00000172 9DF80000 LDRB R0,[SP, #+0]
\ 00000176 ........ BL crc8
\ 0000017A 0700 MOVS R7,R0
117 x=swapcrc(x);
\ 0000017C 3800 MOVS R0,R7
\ 0000017E C0B2 UXTB R0,R0 ;; ZeroExtS R0,R0,#+24,#+24
\ 00000180 ........ BL swapcrc
\ 00000184 0700 MOVS R7,R0
118 y=(Int8U)(x1_data&0xff);
\ 00000186 3000 MOVS R0,R6
\ 00000188 8DF80000 STRB R0,[SP, #+0]
119 if(x==y)
\ 0000018C 9DF80000 LDRB R0,[SP, #+0]
\ 00000190 FFB2 UXTB R7,R7 ;; ZeroExtS R7,R7,#+24,#+24
\ 00000192 8742 CMP R7,R0
\ 00000194 13D1 BNE.N ??Read_SHT_7
120 {
121 x1_data=x1_data>>8;
\ 00000196 360A LSRS R6,R6,#+8
122 if(xyz==0)IO_Tem->Temperature=account_Temp((Int16U)x1_data,0);
\ 00000198 4046 MOV R0,R8
\ 0000019A C0B2 UXTB R0,R0 ;; ZeroExtS R0,R0,#+24,#+24
\ 0000019C 0028 CMP R0,#+0
\ 0000019E 06D1 BNE.N ??Read_SHT_8
\ 000001A0 0021 MOVS R1,#+0
\ 000001A2 3000 MOVS R0,R6
\ 000001A4 80B2 UXTH R0,R0 ;; ZeroExtS R0,R0,#+16,#+16
\ 000001A6 ........ BL account_Temp
\ 000001AA 6073 STRB R0,[R4, #+13]
\ 000001AC 05E0 B.N ??Read_SHT_9
123 else IO_Tem->Humidity=account_RH((Int16U)x1_data,0);
\ ??Read_SHT_8:
\ 000001AE 0021 MOVS R1,#+0
\ 000001B0 3000 MOVS R0,R6
\ 000001B2 80B2 UXTH R0,R0 ;; ZeroExtS R0,R0,#+16,#+16
\ 000001B4 ........ BL account_RH
\ 000001B8 A073 STRB R0,[R4, #+14]
124 return 0;
\ ??Read_SHT_9:
\ 000001BA 0020 MOVS R0,#+0
\ 000001BC 00E0 B.N ??Read_SHT_10
125 }else
126 return 0XFF;
\ ??Read_SHT_7:
\ 000001BE FF20 MOVS R0,#+255
\ ??Read_SHT_10:
\ 000001C0 02B0 ADD SP,SP,#+8
\ 000001C2 BDE8F081 POP {R4-R8,PC} ;; return
127 }
128 /////////////////////////////////
129 //-----------------------------------------------
130 // crc caculate
131 //-----------------------------------------------
\ In section .XML, align 4, keep-with-next
132 Int8U crc8(Int8U byte,Int8U crc8)
133 {
\ crc8:
\ 00000000 82B0 SUB SP,SP,#+8
\ 00000002 0200 MOVS R2,R0
\ 00000004 0800 MOVS R0,R1
134 Int8U i;
135 volatile Int8U temp;
136 crc8^=byte;
\ 00000006 5040 EORS R0,R0,R2
137 for(i=0;i<8;i++)
\ 00000008 0023 MOVS R3,#+0
\ 0000000A 1900 MOVS R1,R3
\ ??crc8_0:
\ 0000000C C9B2 UXTB R1,R1 ;; ZeroExtS R1,R1,#+24,#+24
\ 0000000E 0829 CMP R1,#+8
\ 00000010 0BD2 BCS.N ??crc8_1
138 {
139 temp=crc8;
\ 00000012 8DF80000 STRB R0,[SP, #+0]
140 crc8<<=1;
\ 00000016 C0B2 UXTB R0,R0 ;; ZeroExtS R0,R0,#+24,#+24
\ 00000018 4000 LSLS R0,R0,#+1
141 if((temp&0x80)!=0)
\ 0000001A 9DF80030 LDRB R3,[SP, #+0]
\ 0000001E 1B06 LSLS R3,R3,#+24
\ 00000020 01D5 BPL.N ??crc8_2
142 crc8^=0x31;
\ 00000022 90F03100 EORS R0,R0,#0x31
143 }
\ ??crc8_2:
\ 00000026 491C ADDS R1,R1,#+1
\ 00000028 F0E7 B.N ??crc8_0
144 return crc8;
\ ??crc8_1:
\ 0000002A C0B2 UXTB R0,R0 ;; ZeroExtS R0,R0,#+24,#+24
\ 0000002C 02B0 ADD SP,SP,#+8
\ 0000002E 7047 BX LR ;; return
145 }
146 //-----------------------------------------------
147 // swap crc byte
148 //-----------------------------------------------
\ In section .XML, align 4, keep-with-next
149 Int8U swapcrc(Int8U byte)
150 {
\ swapcrc:
\ 00000000 01B5 PUSH {R0,LR}
\ 00000002 0100 MOVS R1,R0
151 Int8U i;
152 Int8U temp=0;
\ 00000004 0023 MOVS R3,#+0
\ 00000006 1800 MOVS R0,R3
153
154 for (i=0x80;i>0;i/=2)
\ 00000008 8023 MOVS R3,#+128
\ 0000000A 1A00 MOVS R2,R3
\ ??swapcrc_0:
\ 0000000C D2B2 UXTB R2,R2 ;; ZeroExtS R2,R2,#+24,#+24
\ 0000000E 012A CMP R2,#+1
\ 00000010 0FD3 BCC.N ??swapcrc_1
155 {
156 if((byte&i)!=0)
\ 00000012 1142 TST R1,R2
\ 00000014 01D0 BEQ.N ??swapcrc_2
157 temp|=0x80;
\ 00000016 50F08000 ORRS R0,R0,#0x80
158 if(i==0x01)
\ ??swapcrc_2:
\ 0000001A D2B2 UXTB R2,R2 ;; ZeroExtS R2,R2,#+24,#+24
\ 0000001C 012A CMP R2,#+1
\ 0000001E 08D0 BEQ.N ??swapcrc_1
159 break;
160 temp>>=1;
\ 00000020 C0B2 UXTB R0,R0 ;; ZeroExtS R0,R0,#+24,#+24
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -