📄 yt_temep.lst
字号:
\ 00000058 0122 MOVS R2,#+1
\ 0000005A 0121 MOVS R1,#+1
\ 0000005C 2079 LDRB R0,[R4, #+4]
\ 0000005E 8140 LSLS R1,R1,R0
\ 00000060 89B2 UXTH R1,R1 ;; ZeroExtS R1,R1,#+16,#+16
\ 00000062 2068 LDR R0,[R4, #+0]
\ 00000064 ........ BL GPIO_InOut
50 Set_bit((IO_Tem->IOD)->ODR,IO_Tem->IO_D);
\ 00000068 2068 LDR R0,[R4, #+0]
\ 0000006A C068 LDR R0,[R0, #+12]
\ 0000006C 0121 MOVS R1,#+1
\ 0000006E 2279 LDRB R2,[R4, #+4]
\ 00000070 9140 LSLS R1,R1,R2
\ 00000072 0143 ORRS R1,R1,R0
\ 00000074 2068 LDR R0,[R4, #+0]
\ 00000076 C160 STR R1,[R0, #+12]
51 return z;
\ 00000078 2800 MOVS R0,R5
\ 0000007A C0B2 UXTB R0,R0 ;; ZeroExtS R0,R0,#+24,#+24
\ 0000007C 01B0 ADD SP,SP,#+4
\ 0000007E 30BD POP {R4,R5,PC} ;; return
52 }
53 ////////////////////////////////
\ In section .XML, align 4, keep-with-next
54 Int8U Write_SHT(const Int8U data,Tem *IO_Tem)
55 {
\ Write_SHT:
\ 00000000 2DE9F041 PUSH {R4-R8,LR}
\ 00000004 8046 MOV R8,R0
\ 00000006 0C00 MOVS R4,R1
56 Int8U x,y,x1;
57 y=data;
\ 00000008 4046 MOV R0,R8
\ 0000000A 0600 MOVS R6,R0
58 for(x1=0;x1<3;x1++)
\ 0000000C 0020 MOVS R0,#+0
\ 0000000E 0700 MOVS R7,R0
\ ??Write_SHT_0:
\ 00000010 FFB2 UXTB R7,R7 ;; ZeroExtS R7,R7,#+24,#+24
\ 00000012 032F CMP R7,#+3
\ 00000014 41D2 BCS.N ??Write_SHT_1
59 {
60 for(x=0;x<8;x++)
\ 00000016 0020 MOVS R0,#+0
\ 00000018 0500 MOVS R5,R0
\ ??Write_SHT_2:
\ 0000001A EDB2 UXTB R5,R5 ;; ZeroExtS R5,R5,#+24,#+24
\ 0000001C 082D CMP R5,#+8
\ 0000001E 2CD2 BCS.N ??Write_SHT_3
61 {
62 if(y&0x80)Set_bit((IO_Tem->IOD)->ODR,IO_Tem->IO_D);
\ 00000020 3006 LSLS R0,R6,#+24
\ 00000022 08D5 BPL.N ??Write_SHT_4
\ 00000024 2068 LDR R0,[R4, #+0]
\ 00000026 C068 LDR R0,[R0, #+12]
\ 00000028 0121 MOVS R1,#+1
\ 0000002A 2279 LDRB R2,[R4, #+4]
\ 0000002C 9140 LSLS R1,R1,R2
\ 0000002E 0143 ORRS R1,R1,R0
\ 00000030 2068 LDR R0,[R4, #+0]
\ 00000032 C160 STR R1,[R0, #+12]
\ 00000034 07E0 B.N ??Write_SHT_5
63 else Clr_bit((IO_Tem->IOD)->ODR,IO_Tem->IO_D);
\ ??Write_SHT_4:
\ 00000036 2068 LDR R0,[R4, #+0]
\ 00000038 C068 LDR R0,[R0, #+12]
\ 0000003A 0121 MOVS R1,#+1
\ 0000003C 2279 LDRB R2,[R4, #+4]
\ 0000003E 9140 LSLS R1,R1,R2
\ 00000040 8843 BICS R0,R0,R1
\ 00000042 2168 LDR R1,[R4, #+0]
\ 00000044 C860 STR R0,[R1, #+12]
64 y<<=1;
\ ??Write_SHT_5:
\ 00000046 F6B2 UXTB R6,R6 ;; ZeroExtS R6,R6,#+24,#+24
\ 00000048 7600 LSLS R6,R6,#+1
65 Set_bit((IO_Tem->IOC)->ODR,IO_Tem->IO_C);
\ 0000004A A068 LDR R0,[R4, #+8]
\ 0000004C C068 LDR R0,[R0, #+12]
\ 0000004E 0121 MOVS R1,#+1
\ 00000050 227B LDRB R2,[R4, #+12]
\ 00000052 9140 LSLS R1,R1,R2
\ 00000054 0143 ORRS R1,R1,R0
\ 00000056 A068 LDR R0,[R4, #+8]
\ 00000058 C160 STR R1,[R0, #+12]
66 delay(20);
\ 0000005A 1420 MOVS R0,#+20
\ 0000005C ........ BL delay
67 Clr_bit((IO_Tem->IOC)->ODR,IO_Tem->IO_C);
\ 00000060 A068 LDR R0,[R4, #+8]
\ 00000062 C068 LDR R0,[R0, #+12]
\ 00000064 0121 MOVS R1,#+1
\ 00000066 227B LDRB R2,[R4, #+12]
\ 00000068 9140 LSLS R1,R1,R2
\ 0000006A 8843 BICS R0,R0,R1
\ 0000006C A168 LDR R1,[R4, #+8]
\ 0000006E C860 STR R0,[R1, #+12]
68 delay(20);
\ 00000070 1420 MOVS R0,#+20
\ 00000072 ........ BL delay
69 }
\ 00000076 6D1C ADDS R5,R5,#+1
\ 00000078 CFE7 B.N ??Write_SHT_2
70 y=SHTA_ack(IO_Tem);
\ ??Write_SHT_3:
\ 0000007A 2000 MOVS R0,R4
\ 0000007C ........ BL SHTA_ack
\ 00000080 0600 MOVS R6,R0
71 if(y==0)return 0;
\ 00000082 F6B2 UXTB R6,R6 ;; ZeroExtS R6,R6,#+24,#+24
\ 00000084 002E CMP R6,#+0
\ 00000086 01D1 BNE.N ??Write_SHT_6
\ 00000088 0020 MOVS R0,#+0
\ 0000008A 07E0 B.N ??Write_SHT_7
72 y=data;
\ ??Write_SHT_6:
\ 0000008C 4046 MOV R0,R8
\ 0000008E 0600 MOVS R6,R0
73 START_SHT(IO_Tem);
\ 00000090 2000 MOVS R0,R4
\ 00000092 ........ BL START_SHT
74 }
\ 00000096 7F1C ADDS R7,R7,#+1
\ 00000098 BAE7 B.N ??Write_SHT_0
75 return 1;
\ ??Write_SHT_1:
\ 0000009A 0120 MOVS R0,#+1
\ ??Write_SHT_7:
\ 0000009C BDE8F081 POP {R4-R8,PC} ;; return
76 }
\ In section .XML, align 4, keep-with-next
77 Int8U Read_SHT(Tem *IO_Tem,Int8U xyz)//xyz=0 is temperature,xyz=1 is humidity
78 {
\ Read_SHT:
\ 00000000 2DE9F341 PUSH {R0,R1,R4-R8,LR}
\ 00000004 8846 MOV R8,R1
\ 00000006 0400 MOVS R4,R0
79 Int8U x,x1,y;
80 Int32U x1_data=0;
\ 00000008 0020 MOVS R0,#+0
\ 0000000A 0600 MOVS R6,R0
81
82 for(x1=0;x1<3;x1++)
\ 0000000C 0020 MOVS R0,#+0
\ 0000000E 0500 MOVS R5,R0
\ ??Read_SHT_0:
\ 00000010 EDB2 UXTB R5,R5 ;; ZeroExtS R5,R5,#+24,#+24
\ 00000012 032D CMP R5,#+3
\ 00000014 61D2 BCS.N ??Read_SHT_1
83 {
84 GPIO_InOut(IO_Tem->IOD,1<<IO_Tem->IO_D,0,GPIO_Mode_IN_FLOATING);
\ 00000016 0423 MOVS R3,#+4
\ 00000018 0022 MOVS R2,#+0
\ 0000001A 0121 MOVS R1,#+1
\ 0000001C 2079 LDRB R0,[R4, #+4]
\ 0000001E 8140 LSLS R1,R1,R0
\ 00000020 89B2 UXTH R1,R1 ;; ZeroExtS R1,R1,#+16,#+16
\ 00000022 2068 LDR R0,[R4, #+0]
\ 00000024 ........ BL GPIO_InOut
85 for(x=0;x<8;x++)
\ 00000028 0020 MOVS R0,#+0
\ 0000002A 0700 MOVS R7,R0
\ ??Read_SHT_2:
\ 0000002C FFB2 UXTB R7,R7 ;; ZeroExtS R7,R7,#+24,#+24
\ 0000002E 082F CMP R7,#+8
\ 00000030 27D2 BCS.N ??Read_SHT_3
86 {
87 x1_data<<=1;
\ 00000032 7600 LSLS R6,R6,#+1
88 delay(20);
\ 00000034 1420 MOVS R0,#+20
\ 00000036 ........ BL delay
89 Set_bit((IO_Tem->IOC)->ODR,IO_Tem->IO_C);
\ 0000003A A068 LDR R0,[R4, #+8]
\ 0000003C C068 LDR R0,[R0, #+12]
\ 0000003E 0121 MOVS R1,#+1
\ 00000040 227B LDRB R2,[R4, #+12]
\ 00000042 9140 LSLS R1,R1,R2
\ 00000044 0143 ORRS R1,R1,R0
\ 00000046 A068 LDR R0,[R4, #+8]
\ 00000048 C160 STR R1,[R0, #+12]
90 delay(20);
\ 0000004A 1420 MOVS R0,#+20
\ 0000004C ........ BL delay
91 y=GPIO_ReadInputDataBit(IO_Tem->IOD,1<<IO_Tem->IO_D);
\ 00000050 0121 MOVS R1,#+1
\ 00000052 2079 LDRB R0,[R4, #+4]
\ 00000054 8140 LSLS R1,R1,R0
\ 00000056 89B2 UXTH R1,R1 ;; ZeroExtS R1,R1,#+16,#+16
\ 00000058 2068 LDR R0,[R4, #+0]
\ 0000005A ........ BL GPIO_ReadInputDataBit
\ 0000005E 8DF80000 STRB R0,[SP, #+0]
92 if(y!=0)x1_data|=1;
\ 00000062 9DF80000 LDRB R0,[SP, #+0]
\ 00000066 0028 CMP R0,#+0
\ 00000068 01D0 BEQ.N ??Read_SHT_4
\ 0000006A 56F00106 ORRS R6,R6,#0x1
93 Clr_bit((IO_Tem->IOC)->ODR,IO_Tem->IO_C);
\ ??Read_SHT_4:
\ 0000006E A068 LDR R0,[R4, #+8]
\ 00000070 C068 LDR R0,[R0, #+12]
\ 00000072 0121 MOVS R1,#+1
\ 00000074 227B LDRB R2,[R4, #+12]
\ 00000076 9140 LSLS R1,R1,R2
\ 00000078 8843 BICS R0,R0,R1
\ 0000007A A168 LDR R1,[R4, #+8]
\ 0000007C C860 STR R0,[R1, #+12]
94 }
\ 0000007E 7F1C ADDS R7,R7,#+1
\ 00000080 D4E7 B.N ??Read_SHT_2
95 GPIO_InOut(IO_Tem->IOD,1<<IO_Tem->IO_D,1,GPIO_Mode_Out_PP);
\ ??Read_SHT_3:
\ 00000082 1023 MOVS R3,#+16
\ 00000084 0122 MOVS R2,#+1
\ 00000086 0121 MOVS R1,#+1
\ 00000088 2079 LDRB R0,[R4, #+4]
\ 0000008A 8140 LSLS R1,R1,R0
\ 0000008C 89B2 UXTH R1,R1 ;; ZeroExtS R1,R1,#+16,#+16
\ 0000008E 2068 LDR R0,[R4, #+0]
\ 00000090 ........ BL GPIO_InOut
96 Clr_bit((IO_Tem->IOD)->ODR,IO_Tem->IO_D);
\ 00000094 2068 LDR R0,[R4, #+0]
\ 00000096 C068 LDR R0,[R0, #+12]
\ 00000098 0121 MOVS R1,#+1
\ 0000009A 2279 LDRB R2,[R4, #+4]
\ 0000009C 9140 LSLS R1,R1,R2
\ 0000009E 8843 BICS R0,R0,R1
\ 000000A0 2168 LDR R1,[R4, #+0]
\ 000000A2 C860 STR R0,[R1, #+12]
97 delay(20);
\ 000000A4 1420 MOVS R0,#+20
\ 000000A6 ........ BL delay
98 Set_bit((IO_Tem->IOC)->ODR,IO_Tem->IO_C);
\ 000000AA A068 LDR R0,[R4, #+8]
\ 000000AC C068 LDR R0,[R0, #+12]
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -