📄 tsensor.txt
字号:
;;;339 /* Test on EV7 and clear it */
;;;340 while(!I2C_CheckEvent(I2C1, I2C_EVENT_MASTER_BYTE_RECEIVED)) /* EV7 */
000084 4629 MOV r1,r5
000086 4620 MOV r0,r4
000088 f7fff7ff BL I2C_CheckEvent
00008c 2800 CMP r0,#0
00008e d0f9 BEQ |L5.132|
;;;341 {
;;;342 }
;;;343
;;;344 /* Store I2C1 received data */
;;;345 RegValue = I2C_ReceiveData(I2C1) << 8;
000090 4620 MOV r0,r4
000092 f7fff7ff BL I2C_ReceiveData
000096 0206 LSLS r6,r0,#8
;;;346
;;;347 /* Disable I2C1 acknowledgement */
;;;348 I2C_AcknowledgeConfig(I2C1, DISABLE);
000098 2100 MOVS r1,#0
00009a 4620 MOV r0,r4
00009c f7fff7ff BL I2C_AcknowledgeConfig
;;;349
;;;350 /* Send I2C1 STOP Condition */
;;;351 I2C_GenerateSTOP(I2C1, ENABLE);
0000a0 2101 MOVS r1,#1
0000a2 4620 MOV r0,r4
0000a4 f7fff7ff BL I2C_GenerateSTOP
|L5.168|
;;;352
;;;353 /* Test on EV7 and clear it */
;;;354 while(!I2C_CheckEvent(I2C1, I2C_EVENT_MASTER_BYTE_RECEIVED)) /* EV7 */
0000a8 4629 MOV r1,r5
0000aa 4620 MOV r0,r4
0000ac f7fff7ff BL I2C_CheckEvent
0000b0 2800 CMP r0,#0
0000b2 d0f9 BEQ |L5.168|
;;;355 {
;;;356 }
;;;357
;;;358 /* Store I2C1 received data */
;;;359 RegValue |= I2C_ReceiveData(I2C1);
0000b4 4620 MOV r0,r4
0000b6 f7fff7ff BL I2C_ReceiveData
0000ba 4330 ORRS r0,r0,r6
;;;360
;;;361 /* Return Temperature value */
;;;362 return (RegValue >> 5);
0000bc f3c0f3c0 UBFX r0,r0,#5,#16
;;;363 }
0000c0 bd70 POP {r4-r6,pc}
;;;364
ENDP
0000c2 0000 DCW 0x0000
|L5.196|
0000c4 40005400 DCD 0x40005400
|L5.200|
0000c8 00030001 DCD 0x00030001
|L5.204|
0000cc 00070082 DCD 0x00070082
AREA ||i.I2C_LM75_ConfReg_Read||, CODE, READONLY, ALIGN=2
I2C_LM75_ConfReg_Read PROC
;;;372 u8 I2C_LM75_ConfReg_Read(void)
;;;373 {
000000 b570 PUSH {r4-r6,lr}
;;;374 u32 RegValue = 0;
;;;375
;;;376 /*----- Transmission Phase -----*/
;;;377 /* Send I2C1 START condition */
;;;378 I2C_GenerateSTART(I2C1, ENABLE);
000002 4d28 LDR r5,|L6.164|
000004 2101 MOVS r1,#1
000006 4628 MOV r0,r5
000008 f7fff7ff BL I2C_GenerateSTART
00000c 4c26 LDR r4,|L6.168|
|L6.14|
;;;379
;;;380 /* Test on I2C1 EV5 and clear it */
;;;381 while(!I2C_CheckEvent(I2C1, I2C_EVENT_MASTER_MODE_SELECT)) /* EV5 */
00000e 4628 MOV r0,r5
000010 4621 MOV r1,r4
000012 f7fff7ff BL I2C_CheckEvent
000016 2800 CMP r0,#0
000018 d0f9 BEQ |L6.14|
;;;382 {
;;;383 }
;;;384
;;;385 /* Send STLM75 slave address for write */
;;;386 I2C_Send7bitAddress(I2C1, LM75_Addr, I2C_Direction_Transmitter);
00001a 2200 MOVS r2,#0
00001c 2190 MOVS r1,#0x90
00001e 4628 MOV r0,r5
000020 f7fff7ff BL I2C_Send7bitAddress
000024 4e21 LDR r6,|L6.172|
|L6.38|
;;;387
;;;388 /* Test on I2C1 EV6 and clear it */
;;;389 while(!I2C_CheckEvent(I2C1, I2C_EVENT_MASTER_TRANSMITTER_MODE_SELECTED)) /* EV6 */
000026 4628 MOV r0,r5
000028 4631 MOV r1,r6
00002a f7fff7ff BL I2C_CheckEvent
00002e 2800 CMP r0,#0
000030 d0f9 BEQ |L6.38|
;;;390 {
;;;391 }
;;;392
;;;393 /* Send the configuration register data pointer */
;;;394 I2C_SendData(I2C1, LM75_CONF_Reg);
000032 2101 MOVS r1,#1
000034 4628 MOV r0,r5
000036 f7fff7ff BL I2C_SendData
00003a 4e1c LDR r6,|L6.172|
00003c 1cb6 ADDS r6,r6,#2
|L6.62|
;;;395
;;;396 /* Test on I2C1 EV8 and clear it */
;;;397 while(!I2C_CheckEvent(I2C1, I2C_EVENT_MASTER_BYTE_TRANSMITTED)) /* EV8 */
00003e 4631 MOV r1,r6
000040 4628 MOV r0,r5
000042 f7fff7ff BL I2C_CheckEvent
000046 2800 CMP r0,#0
000048 d0f9 BEQ |L6.62|
;;;398 {
;;;399 }
;;;400
;;;401 /*----- Reception Phase -----*/
;;;402 /* Send Re-STRAT condition */
;;;403 I2C_GenerateSTART(I2C1, ENABLE);
00004a 2101 MOVS r1,#1
00004c 4628 MOV r0,r5
00004e f7fff7ff BL I2C_GenerateSTART
|L6.82|
;;;404
;;;405 /* Test on EV5 and clear it */
;;;406 while(!I2C_CheckEvent(I2C1, I2C_EVENT_MASTER_MODE_SELECT)) /* EV5 */
000052 4621 MOV r1,r4
000054 4628 MOV r0,r5
000056 f7fff7ff BL I2C_CheckEvent
00005a 2800 CMP r0,#0
00005c d0f9 BEQ |L6.82|
;;;407 {
;;;408 }
;;;409
;;;410 /* Send STLM75 slave address for read */
;;;411 I2C_Send7bitAddress(I2C1, LM75_Addr, I2C_Direction_Receiver);
00005e 2201 MOVS r2,#1
000060 2190 MOVS r1,#0x90
000062 4628 MOV r0,r5
000064 f7fff7ff BL I2C_Send7bitAddress
000068 4c0f LDR r4,|L6.168|
00006a 1c64 ADDS r4,r4,#1
|L6.108|
;;;412
;;;413 /* Test on EV6 and clear it */
;;;414 while(!I2C_CheckEvent(I2C1, I2C_EVENT_MASTER_RECEIVER_MODE_SELECTED)) /* EV6 */
00006c 4621 MOV r1,r4
00006e 4628 MOV r0,r5
000070 f7fff7ff BL I2C_CheckEvent
000074 2800 CMP r0,#0
000076 d0f9 BEQ |L6.108|
;;;415 {
;;;416 }
;;;417
;;;418 /* Disable I2C1 acknowledgement */
;;;419 I2C_AcknowledgeConfig(I2C1, DISABLE);
000078 2100 MOVS r1,#0
00007a 4628 MOV r0,r5
00007c f7fff7ff BL I2C_AcknowledgeConfig
;;;420
;;;421 /* Send I2C1 STOP Condition */
;;;422 I2C_GenerateSTOP(I2C1, ENABLE);
000080 2101 MOVS r1,#1
000082 4628 MOV r0,r5
000084 f7fff7ff BL I2C_GenerateSTOP
000088 4c07 LDR r4,|L6.168|
00008a 343f ADDS r4,r4,#0x3f
|L6.140|
;;;423
;;;424 /* Test on EV7 and clear it */
;;;425 while(!I2C_CheckEvent(I2C1, I2C_EVENT_MASTER_BYTE_RECEIVED)) /* EV7 */
00008c 4621 MOV r1,r4
00008e 4628 MOV r0,r5
000090 f7fff7ff BL I2C_CheckEvent
000094 2800 CMP r0,#0
000096 d0f9 BEQ |L6.140|
;;;426 {
;;;427 }
;;;428
;;;429 /* Store I2C1 received data */
;;;430 RegValue = I2C_ReceiveData(I2C1);
000098 4628 MOV r0,r5
00009a e8bde8bd POP {r4-r6,lr}
00009e f7fff7ff B.W I2C_ReceiveData
;;;431
;;;432 /* Return configuration register value */
;;;433 return (RegValue);
;;;434 }
;;;435
ENDP
0000a2 0000 DCW 0x0000
|L6.164|
0000a4 40005400 DCD 0x40005400
|L6.168|
0000a8 00030001 DCD 0x00030001
|L6.172|
0000ac 00070082 DCD 0x00070082
AREA ||i.I2C_LM75_ConfReg_Write||, CODE, READONLY, ALIGN=2
I2C_LM75_ConfReg_Write PROC
;;;443 void I2C_LM75_ConfReg_Write(u8 RegValue)
;;;444 {
000000 b570 PUSH {r4-r6,lr}
;;;445 /*----- Transmission Phase -----*/
;;;446 /* Send I2C1 START condition */
;;;447 I2C_GenerateSTART(I2C1, ENABLE);
000002 4d1a LDR r5,|L7.108|
000004 4606 MOV r6,r0 ;444
000006 2101 MOVS r1,#1
000008 4628 MOV r0,r5
00000a f7fff7ff BL I2C_GenerateSTART
00000e 4c18 LDR r4,|L7.112|
|L7.16|
;;;448
;;;449 /* Test on I2C1 EV5 and clear it */
;;;450 while(!I2C_CheckEvent(I2C1, I2C_EVENT_MASTER_MODE_SELECT)) /* EV5 */
000010 4628 MOV r0,r5
000012 4621 MOV r1,r4
000014 f7fff7ff BL I2C_CheckEvent
000018 2800 CMP r0,#0
00001a d0f9 BEQ |L7.16|
;;;451 {
;;;452 }
;;;453
;;;454 /* Send STLM75 slave address for write */
;;;455 I2C_Send7bitAddress(I2C1, LM75_Addr, I2C_Direction_Transmitter);
00001c 2200 MOVS r2,#0
00001e 2190 MOVS r1,#0x90
000020 4628 MOV r0,r5
000022 f7fff7ff BL I2C_Send7bitAddress
000026 4c13 LDR r4,|L7.116|
|L7.40|
;;;456
;;;457 /* Test on I2C1 EV6 and clear it */
;;;458 while(!I2C_CheckEvent(I2C1, I2C_EVENT_MASTER_TRANSMITTER_MODE_SELECTED)) /* EV6 */
000028 4628 MOV r0,r5
00002a 4621 MOV r1,r4
00002c f7fff7ff BL I2C_CheckEvent
000030 2800 CMP r0,#0
000032 d0f9 BEQ |L7.40|
;;;459 {
;;;460 }
;;;461
;;;462 /* Send the configuration register data pointer */
;;;463 I2C_SendData(I2C1, LM75_CONF_Reg);
000034 2101 MOVS r1,#1
000036 4628 MOV r0,r5
000038 f7fff7ff BL I2C_SendData
00003c 4c0d LDR r4,|L7.116|
00003e 1ca4 ADDS r4,r4,#2
|L7.64|
;;;464
;;;465 /* Test on I2C1 EV8 and clear it */
;;;466 while(!I2C_CheckEvent(I2C1, I2C_EVENT_MASTER_BYTE_TRANSMITTED)) /* EV8 */
000040 4621 MOV r1,r4
000042 4628 MOV r0,r5
000044 f7fff7ff BL I2C_CheckEvent
000048 2800 CMP r0,#0
00004a d0f9 BEQ |L7.64|
;;;467 {
;;;468 }
;;;469
;;;470 /* Send I2C1 data */
;;;471 I2C_SendData(I2C1, RegValue);
00004c 4631 MOV r1,r6
00004e 4628 MOV r0,r5
000050 f7fff7ff BL I2C_SendData
|L7.84|
;;;472
;;;473 /* Test on I2C1 EV8 and clear it */
;;;474 while(!I2C_CheckEvent(I2C1, I2C_EVENT_MASTER_BYTE_TRANSMITTED)) /* EV8 */
000054 4621 MOV r1,r4
000056 4628 MOV r0,r5
000058 f7fff7ff BL I2C_CheckEvent
00005c 2800 CMP r0,#0
00005e d0f9 BEQ |L7.84|
;;;475 {
;;;476 }
;;;477
;;;478 /* Send I2C1 STOP Condition */
;;;479 I2C_GenerateSTOP(I2C1, ENABLE);
000060 4628 MOV r0,r5
000062 e8bde8bd POP {r4-r6,lr}
000066 2101 MOVS r1,#1
000068 f7fff7ff B.W I2C_GenerateSTOP
;;;480 }
;;;481
ENDP
|L7.108|
00006c 40005400 DCD 0x40005400
|L7.112|
000070 00030001 DCD 0x00030001
|L7.116|
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -