📄 tsensor.txt
字号:
;;;191 /* Test on EV6 and clear it */
;;;192 while(!I2C_CheckEvent(I2C1, I2C_EVENT_MASTER_RECEIVER_MODE_SELECTED)) /* EV6 */
00007c 4631 MOV r1,r6
00007e 4620 MOV r0,r4
000080 f7fff7ff BL I2C_CheckEvent
000084 2800 CMP r0,#0
000086 d0f9 BEQ |L3.124|
|L3.136|
;;;193 {
;;;194 }
;;;195
;;;196
;;;197 /* Test on EV7 and clear it */
;;;198 while(!I2C_CheckEvent(I2C1, I2C_EVENT_MASTER_BYTE_RECEIVED)) /* EV7 */
000088 4629 MOV r1,r5
00008a 4620 MOV r0,r4
00008c f7fff7ff BL I2C_CheckEvent
000090 2800 CMP r0,#0
000092 d0f9 BEQ |L3.136|
;;;199 {
;;;200 }
;;;201
;;;202 /* Store I2C1 received data */
;;;203 RegValue = (u16)(I2C_ReceiveData(I2C1) << 8);
000094 4620 MOV r0,r4
000096 f7fff7ff BL I2C_ReceiveData
00009a 0206 LSLS r6,r0,#8
;;;204
;;;205 /* Disable I2C1 acknowledgement */
;;;206 I2C_AcknowledgeConfig(I2C1, DISABLE);
00009c 2100 MOVS r1,#0
00009e 4620 MOV r0,r4
0000a0 f7fff7ff BL I2C_AcknowledgeConfig
;;;207
;;;208 /* Send I2C1 STOP Condition */
;;;209 I2C_GenerateSTOP(I2C1, ENABLE);
0000a4 2101 MOVS r1,#1
0000a6 4620 MOV r0,r4
0000a8 f7fff7ff BL I2C_GenerateSTOP
|L3.172|
;;;210
;;;211 /* Test on EV7 and clear it */
;;;212 while(!I2C_CheckEvent(I2C1, I2C_EVENT_MASTER_BYTE_RECEIVED)) /* EV7 */
0000ac 4629 MOV r1,r5
0000ae 4620 MOV r0,r4
0000b0 f7fff7ff BL I2C_CheckEvent
0000b4 2800 CMP r0,#0
0000b6 d0f9 BEQ |L3.172|
;;;213 {
;;;214 }
;;;215
;;;216 /* Store I2C1 received data */
;;;217 RegValue |= I2C_ReceiveData(I2C1);
0000b8 4620 MOV r0,r4
0000ba f7fff7ff BL I2C_ReceiveData
0000be 4330 ORRS r0,r0,r6
;;;218
;;;219 /* Return register value */
;;;220 return (RegValue >> 7);
0000c0 f3c0f3c0 UBFX r0,r0,#7,#16
;;;221 }
0000c4 e8bde8bd POP {r4-r8,pc}
;;;222
ENDP
|L3.200|
0000c8 40005400 DCD 0x40005400
|L3.204|
0000cc 00030001 DCD 0x00030001
|L3.208|
0000d0 00070082 DCD 0x00070082
AREA ||i.I2C_LM75_Reg_Write||, CODE, READONLY, ALIGN=2
I2C_LM75_Reg_Write PROC
;;;233 void I2C_LM75_Reg_Write(u8 RegName, u16 RegValue)
;;;234 {
000000 e92de92d PUSH {r4-r8,lr}
000004 4605 MOV r5,r0
;;;235 /* Shift left register value */
;;;236 RegValue = RegValue << 7;
000006 05c8 LSLS r0,r1,#23
;;;237
;;;238 /*----- Transmission Phase -----*/
;;;239 /* Send I2C1 START condition */
;;;240 I2C_GenerateSTART(I2C1, ENABLE);
000008 4e1f LDR r6,|L4.136|
00000a 0c04 LSRS r4,r0,#16 ;236
00000c 2101 MOVS r1,#1
00000e 4630 MOV r0,r6
000010 f7fff7ff BL I2C_GenerateSTART
000014 4f1d LDR r7,|L4.140|
|L4.22|
;;;241
;;;242 /* Test on I2C1 EV5 and clear it */
;;;243 while(!I2C_CheckEvent(I2C1, I2C_EVENT_MASTER_MODE_SELECT)) /* EV5 */
000016 4630 MOV r0,r6
000018 4639 MOV r1,r7
00001a f7fff7ff BL I2C_CheckEvent
00001e 2800 CMP r0,#0
000020 d0f9 BEQ |L4.22|
;;;244 {
;;;245 }
;;;246
;;;247 /* Send STLM75 slave address for write */
;;;248 I2C_Send7bitAddress(I2C1, LM75_Addr, I2C_Direction_Transmitter);
000022 2200 MOVS r2,#0
000024 2190 MOVS r1,#0x90
000026 4630 MOV r0,r6
000028 f7fff7ff BL I2C_Send7bitAddress
00002c 4f18 LDR r7,|L4.144|
|L4.46|
;;;249
;;;250 /* Test on I2C1 EV6 and clear it */
;;;251 while(!I2C_CheckEvent(I2C1, I2C_EVENT_MASTER_TRANSMITTER_MODE_SELECTED)) /* EV6 */
00002e 4630 MOV r0,r6
000030 4639 MOV r1,r7
000032 f7fff7ff BL I2C_CheckEvent
000036 2800 CMP r0,#0
000038 d0f9 BEQ |L4.46|
;;;252 {
;;;253 }
;;;254
;;;255 /* Send the specified register data pointer */
;;;256 I2C_SendData(I2C1, RegName);
00003a 4629 MOV r1,r5
00003c 4630 MOV r0,r6
00003e f7fff7ff BL I2C_SendData
000042 4d13 LDR r5,|L4.144|
000044 1cad ADDS r5,r5,#2
|L4.70|
;;;257
;;;258 /* Test on I2C1 EV8 and clear it */
;;;259 while(!I2C_CheckEvent(I2C1, I2C_EVENT_MASTER_BYTE_TRANSMITTED)) /* EV8 */
000046 4629 MOV r1,r5
000048 4630 MOV r0,r6
00004a f7fff7ff BL I2C_CheckEvent
00004e 2800 CMP r0,#0
000050 d0f9 BEQ |L4.70|
;;;260 {
;;;261 }
;;;262
;;;263 /* Send I2C1 data */
;;;264 I2C_SendData(I2C1, (u8)(RegValue >> 8));
000052 0a21 LSRS r1,r4,#8
000054 4630 MOV r0,r6
000056 f7fff7ff BL I2C_SendData
|L4.90|
;;;265
;;;266 /* Test on I2C1 EV8 and clear it */
;;;267 while(!I2C_CheckEvent(I2C1, I2C_EVENT_MASTER_BYTE_TRANSMITTED)) /* EV8 */
00005a 4629 MOV r1,r5
00005c 4630 MOV r0,r6
00005e f7fff7ff BL I2C_CheckEvent
000062 2800 CMP r0,#0
000064 d0f9 BEQ |L4.90|
;;;268 {
;;;269 }
;;;270
;;;271 /* Send I2C1 data */
;;;272 I2C_SendData(I2C1, (u8)RegValue);
000066 b2e1 UXTB r1,r4
000068 4630 MOV r0,r6
00006a f7fff7ff BL I2C_SendData
|L4.110|
;;;273
;;;274 /* Test on I2C1 EV8 and clear it */
;;;275 while(!I2C_CheckEvent(I2C1, I2C_EVENT_MASTER_BYTE_TRANSMITTED)) /* EV8 */
00006e 4629 MOV r1,r5
000070 4630 MOV r0,r6
000072 f7fff7ff BL I2C_CheckEvent
000076 2800 CMP r0,#0
000078 d0f9 BEQ |L4.110|
;;;276 {
;;;277 }
;;;278
;;;279 /* Send I2C1 STOP Condition */
;;;280 I2C_GenerateSTOP(I2C1, ENABLE);
00007a 4630 MOV r0,r6
00007c e8bde8bd POP {r4-r8,lr}
000080 2101 MOVS r1,#1
000082 f7fff7ff B.W I2C_GenerateSTOP
;;;281 }
;;;282
ENDP
000086 0000 DCW 0x0000
|L4.136|
000088 40005400 DCD 0x40005400
|L4.140|
00008c 00030001 DCD 0x00030001
|L4.144|
000090 00070082 DCD 0x00070082
AREA ||i.I2C_LM75_Temp_Read||, CODE, READONLY, ALIGN=2
I2C_LM75_Temp_Read PROC
;;;290 u16 I2C_LM75_Temp_Read(void)
;;;291 {
000000 b570 PUSH {r4-r6,lr}
;;;292 u32 RegValue = 0;
;;;293
;;;294 /* Enable I2C1 acknowledgement if it is already disabled by other function */
;;;295 I2C_AcknowledgeConfig(I2C1, ENABLE);
000002 4c30 LDR r4,|L5.196|
000004 2101 MOVS r1,#1
000006 4620 MOV r0,r4
000008 f7fff7ff BL I2C_AcknowledgeConfig
;;;296
;;;297 /*----- Transmission Phase -----*/
;;;298 /* Send I2C1 START condition */
;;;299 I2C_GenerateSTART(I2C1, ENABLE);
00000c 2101 MOVS r1,#1
00000e 4620 MOV r0,r4
000010 f7fff7ff BL I2C_GenerateSTART
000014 4d2c LDR r5,|L5.200|
|L5.22|
;;;300
;;;301 /* Test on I2C1 EV5 and clear it */
;;;302 while(!I2C_CheckEvent(I2C1, I2C_EVENT_MASTER_MODE_SELECT)) /* EV5 */
000016 4620 MOV r0,r4
000018 4629 MOV r1,r5
00001a f7fff7ff BL I2C_CheckEvent
00001e 2800 CMP r0,#0
000020 d0f9 BEQ |L5.22|
;;;303 {
;;;304 }
;;;305
;;;306 /* Send STLM75 slave address for write */
;;;307 I2C_Send7bitAddress(I2C1, LM75_Addr, I2C_Direction_Transmitter);
000022 2200 MOVS r2,#0
000024 2190 MOVS r1,#0x90
000026 4620 MOV r0,r4
000028 f7fff7ff BL I2C_Send7bitAddress
00002c 4e27 LDR r6,|L5.204|
|L5.46|
;;;308
;;;309 /* Test on I2C1 EV6 and clear it */
;;;310 while(!I2C_CheckEvent(I2C1, I2C_EVENT_MASTER_TRANSMITTER_MODE_SELECTED)) /* EV6 */
00002e 4620 MOV r0,r4
000030 4631 MOV r1,r6
000032 f7fff7ff BL I2C_CheckEvent
000036 2800 CMP r0,#0
000038 d0f9 BEQ |L5.46|
;;;311 {
;;;312 }
;;;313
;;;314 /* Send the temperature register data pointer */
;;;315 I2C_SendData(I2C1, LM75_TEMP_Reg);
00003a 2100 MOVS r1,#0
00003c 4620 MOV r0,r4
00003e f7fff7ff BL I2C_SendData
000042 4e22 LDR r6,|L5.204|
000044 1cb6 ADDS r6,r6,#2
|L5.70|
;;;316
;;;317 /* Test on I2C1 EV8 and clear it */
;;;318 while(!I2C_CheckEvent(I2C1, I2C_EVENT_MASTER_BYTE_TRANSMITTED)) /* EV8 */
000046 4631 MOV r1,r6
000048 4620 MOV r0,r4
00004a f7fff7ff BL I2C_CheckEvent
00004e 2800 CMP r0,#0
000050 d0f9 BEQ |L5.70|
;;;319 {
;;;320 }
;;;321
;;;322 /*----- Reception Phase -----*/
;;;323 /* Send Re-STRAT condition */
;;;324 I2C_GenerateSTART(I2C1, ENABLE);
000052 2101 MOVS r1,#1
000054 4620 MOV r0,r4
000056 f7fff7ff BL I2C_GenerateSTART
|L5.90|
;;;325
;;;326 /* Test on EV5 and clear it */
;;;327 while(!I2C_CheckEvent(I2C1, I2C_EVENT_MASTER_MODE_SELECT)) /* EV5 */
00005a 4629 MOV r1,r5
00005c 4620 MOV r0,r4
00005e f7fff7ff BL I2C_CheckEvent
000062 2800 CMP r0,#0
000064 d0f9 BEQ |L5.90|
;;;328 {
;;;329 }
;;;330
;;;331 /* Send STLM75 slave address for read */
;;;332 I2C_Send7bitAddress(I2C1, LM75_Addr, I2C_Direction_Receiver);
000066 2201 MOVS r2,#1
000068 2190 MOVS r1,#0x90
00006a 4620 MOV r0,r4
00006c f7fff7ff BL I2C_Send7bitAddress
000070 4e15 LDR r6,|L5.200|
000072 4d15 LDR r5,|L5.200|
000074 1c76 ADDS r6,r6,#1
000076 353f ADDS r5,r5,#0x3f
|L5.120|
;;;333
;;;334 /* Test on EV6 and clear it */
;;;335 while(!I2C_CheckEvent(I2C1, I2C_EVENT_MASTER_RECEIVER_MODE_SELECTED)) /* EV6 */
000078 4631 MOV r1,r6
00007a 4620 MOV r0,r4
00007c f7fff7ff BL I2C_CheckEvent
000080 2800 CMP r0,#0
000082 d0f9 BEQ |L5.120|
|L5.132|
;;;336 {
;;;337 }
;;;338
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -