📄 yt_temep.s
字号:
///////////////////////////////////////////////////////////////////////////////
// /
// 06/Dec/2008 17:12:53 /
// IAR ARM ANSI C/C++ Compiler V5.11.0.20622/W32 EVALUATION /
// Copyright 1999-2007 IAR Systems. All rights reserved. /
// /
// Cpu mode = thumb /
// Endian = little /
// Source file = E:\ELE\yten\pro\app\yt_TemEp.c /
// Command line = E:\ELE\yten\pro\app\yt_TemEp.c -D EMB_FLASH -lCN /
// E:\ELE\yten\pro\Debug\List\ -lb /
// E:\ELE\yten\pro\Debug\List\ -o /
// E:\ELE\yten\pro\Debug\Obj\ --no_cse --no_unroll /
// --no_inline --no_code_motion --no_tbaa --no_clustering /
// --no_scheduling --debug --endian little --cpu /
// Cortex-M3 -e --fpu None --dlib_config "C:\Program /
// Files\IAR Systems\Embedded Workbench 5.0 /
// Evaluation\ARM\INC\DLib_Config_Normal.h" -I /
// E:\ELE\yten\pro\ -I E:\ELE\yten\pro\..\LIBRARY\INC\ -I /
// "C:\Program Files\IAR Systems\Embedded Workbench 5.0 /
// Evaluation\ARM\INC\" --section .text=.XML -On /
// List file = E:\ELE\yten\pro\Debug\List\yt_TemEp.s /
// /
// /
///////////////////////////////////////////////////////////////////////////////
NAME yt_TemEp
EXTERN GPIO_Init
EXTERN GPIO_ReadInputDataBit
EXTERN TemRHA
EXTERN _YT
EXTERN delay
EXTERN delay_nop
PUBLIC FM_TAB
PUBLIC GPIO_InOut
PUBLIC InitYear
PUBLIC RDBYT
PUBLIC RDNBYT
PUBLIC ReadFM24C04
PUBLIC ReadYear
PUBLIC Read_SHT
PUBLIC SHTA_ack
PUBLIC START_SHT
PUBLIC Test_error
PUBLIC WRBYT
PUBLIC WRNBYT
PUBLIC WriteFM24C04
PUBLIC WriteYear
PUBLIC Write_SHT
PUBLIC account_RH
PUBLIC account_Temp
PUBLIC cack
PUBLIC crc8
PUBLIC mack
PUBLIC mnack
PUBLIC read_SHT_data
PUBLIC sta
PUBLIC stop
PUBLIC swapcrc
SECTION `.data`:DATA:NOROOT(2)
FM_TAB:
DATA
DC8 0, 0, 0, 0, 55, 3, 10, 10, 65, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0
DC8 146, 0, 0
SECTION `.XML`:CODE:NOROOT(2)
THUMB
GPIO_InOut:
PUSH {R0,R4-R7,LR}
MOVS R4,R0
MOVS R5,R1
MOVS R6,R2
MOVS R7,R3
STRH R5,[SP, #+0]
STRB R6,[SP, #+2]
MOVS R0,R7
STRB R0,[SP, #+3]
MOV R1,SP
MOVS R0,R4
BL GPIO_Init
ADD SP,SP,#+4
POP {R4-R7,PC} ;; return
SECTION `.XML`:CODE:NOROOT(2)
THUMB
START_SHT:
PUSH {R4,LR}
MOVS R4,R0
MOVS R3,#+16
MOVS R2,#+1
MOVS R1,#+1
LDRB R0,[R4, #+4]
LSLS R1,R1,R0
UXTH R1,R1 ;; ZeroExtS R1,R1,#+16,#+16
LDR R0,[R4, #+0]
BL GPIO_InOut
MOVS R3,#+16
MOVS R2,#+1
MOVS R1,#+1
LDRB R0,[R4, #+12]
LSLS R1,R1,R0
UXTH R1,R1 ;; ZeroExtS R1,R1,#+16,#+16
LDR R0,[R4, #+8]
BL GPIO_InOut
LDR R0,[R4, #+0]
LDR R0,[R0, #+12]
MOVS R1,#+1
LDRB R2,[R4, #+4]
LSLS R1,R1,R2
ORRS R1,R1,R0
LDR R0,[R4, #+0]
STR R1,[R0, #+12]
MOVS R0,#+20
BL delay
LDR R0,[R4, #+8]
LDR R0,[R0, #+12]
MOVS R1,#+1
LDRB R2,[R4, #+12]
LSLS R1,R1,R2
ORRS R1,R1,R0
LDR R0,[R4, #+8]
STR R1,[R0, #+12]
MOVS R0,#+20
BL delay
LDR R0,[R4, #+0]
LDR R0,[R0, #+12]
MOVS R1,#+1
LDRB R2,[R4, #+4]
LSLS R1,R1,R2
BICS R0,R0,R1
LDR R1,[R4, #+0]
STR R0,[R1, #+12]
MOVS R0,#+20
BL delay
LDR R0,[R4, #+8]
LDR R0,[R0, #+12]
MOVS R1,#+1
LDRB R2,[R4, #+12]
LSLS R1,R1,R2
BICS R0,R0,R1
LDR R1,[R4, #+8]
STR R0,[R1, #+12]
MOVS R0,#+20
BL delay
LDR R0,[R4, #+8]
LDR R0,[R0, #+12]
MOVS R1,#+1
LDRB R2,[R4, #+12]
LSLS R1,R1,R2
ORRS R1,R1,R0
LDR R0,[R4, #+8]
STR R1,[R0, #+12]
MOVS R0,#+20
BL delay
LDR R0,[R4, #+0]
LDR R0,[R0, #+12]
MOVS R1,#+1
LDRB R2,[R4, #+4]
LSLS R1,R1,R2
ORRS R1,R1,R0
LDR R0,[R4, #+0]
STR R1,[R0, #+12]
MOVS R0,#+20
BL delay
LDR R0,[R4, #+8]
LDR R0,[R0, #+12]
MOVS R1,#+1
LDRB R2,[R4, #+12]
LSLS R1,R1,R2
BICS R0,R0,R1
LDR R1,[R4, #+8]
STR R0,[R1, #+12]
MOVS R0,#+20
BL delay
POP {R4,PC} ;; return
SECTION `.XML`:CODE:NOROOT(2)
THUMB
SHTA_ack:
PUSH {R0,R4,R5,LR}
MOVS R4,R0
MOVS R0,#+0
MOVS R5,R0
MOVS R3,#+4
MOVS R2,#+0
MOVS R1,#+1
LDRB R0,[R4, #+4]
LSLS R1,R1,R0
UXTH R1,R1 ;; ZeroExtS R1,R1,#+16,#+16
LDR R0,[R4, #+0]
BL GPIO_InOut
MOVS R0,#+20
BL delay
LDR R0,[R4, #+8]
LDR R0,[R0, #+12]
MOVS R1,#+1
LDRB R2,[R4, #+12]
LSLS R1,R1,R2
ORRS R1,R1,R0
LDR R0,[R4, #+8]
STR R1,[R0, #+12]
MOVS R0,#+20
BL delay
MOVS R1,#+1
LDRB R0,[R4, #+4]
LSLS R1,R1,R0
UXTH R1,R1 ;; ZeroExtS R1,R1,#+16,#+16
LDR R0,[R4, #+0]
BL GPIO_ReadInputDataBit
MOVS R5,R0
LDR R0,[R4, #+8]
LDR R0,[R0, #+12]
MOVS R1,#+1
LDRB R2,[R4, #+12]
LSLS R1,R1,R2
BICS R0,R0,R1
LDR R1,[R4, #+8]
STR R0,[R1, #+12]
MOVS R3,#+16
MOVS R2,#+1
MOVS R1,#+1
LDRB R0,[R4, #+4]
LSLS R1,R1,R0
UXTH R1,R1 ;; ZeroExtS R1,R1,#+16,#+16
LDR R0,[R4, #+0]
BL GPIO_InOut
LDR R0,[R4, #+0]
LDR R0,[R0, #+12]
MOVS R1,#+1
LDRB R2,[R4, #+4]
LSLS R1,R1,R2
ORRS R1,R1,R0
LDR R0,[R4, #+0]
STR R1,[R0, #+12]
MOVS R0,R5
UXTB R0,R0 ;; ZeroExtS R0,R0,#+24,#+24
ADD SP,SP,#+4
POP {R4,R5,PC} ;; return
SECTION `.XML`:CODE:NOROOT(2)
THUMB
Write_SHT:
PUSH {R4-R8,LR}
MOV R8,R0
MOVS R4,R1
MOV R0,R8
MOVS R6,R0
MOVS R0,#+0
MOVS R7,R0
??Write_SHT_0:
UXTB R7,R7 ;; ZeroExtS R7,R7,#+24,#+24
CMP R7,#+3
BCS.N ??Write_SHT_1
MOVS R0,#+0
MOVS R5,R0
??Write_SHT_2:
UXTB R5,R5 ;; ZeroExtS R5,R5,#+24,#+24
CMP R5,#+8
BCS.N ??Write_SHT_3
LSLS R0,R6,#+24
BPL.N ??Write_SHT_4
LDR R0,[R4, #+0]
LDR R0,[R0, #+12]
MOVS R1,#+1
LDRB R2,[R4, #+4]
LSLS R1,R1,R2
ORRS R1,R1,R0
LDR R0,[R4, #+0]
STR R1,[R0, #+12]
B.N ??Write_SHT_5
??Write_SHT_4:
LDR R0,[R4, #+0]
LDR R0,[R0, #+12]
MOVS R1,#+1
LDRB R2,[R4, #+4]
LSLS R1,R1,R2
BICS R0,R0,R1
LDR R1,[R4, #+0]
STR R0,[R1, #+12]
??Write_SHT_5:
UXTB R6,R6 ;; ZeroExtS R6,R6,#+24,#+24
LSLS R6,R6,#+1
LDR R0,[R4, #+8]
LDR R0,[R0, #+12]
MOVS R1,#+1
LDRB R2,[R4, #+12]
LSLS R1,R1,R2
ORRS R1,R1,R0
LDR R0,[R4, #+8]
STR R1,[R0, #+12]
MOVS R0,#+20
BL delay
LDR R0,[R4, #+8]
LDR R0,[R0, #+12]
MOVS R1,#+1
LDRB R2,[R4, #+12]
LSLS R1,R1,R2
BICS R0,R0,R1
LDR R1,[R4, #+8]
STR R0,[R1, #+12]
MOVS R0,#+20
BL delay
ADDS R5,R5,#+1
B.N ??Write_SHT_2
??Write_SHT_3:
MOVS R0,R4
BL SHTA_ack
MOVS R6,R0
UXTB R6,R6 ;; ZeroExtS R6,R6,#+24,#+24
CMP R6,#+0
BNE.N ??Write_SHT_6
MOVS R0,#+0
B.N ??Write_SHT_7
??Write_SHT_6:
MOV R0,R8
MOVS R6,R0
MOVS R0,R4
BL START_SHT
ADDS R7,R7,#+1
B.N ??Write_SHT_0
??Write_SHT_1:
MOVS R0,#+1
??Write_SHT_7:
POP {R4-R8,PC} ;; return
SECTION `.XML`:CODE:NOROOT(2)
THUMB
Read_SHT:
PUSH {R0,R1,R4-R8,LR}
MOV R8,R1
MOVS R4,R0
MOVS R0,#+0
MOVS R6,R0
MOVS R0,#+0
MOVS R5,R0
??Read_SHT_0:
UXTB R5,R5 ;; ZeroExtS R5,R5,#+24,#+24
CMP R5,#+3
BCS.N ??Read_SHT_1
MOVS R3,#+4
MOVS R2,#+0
MOVS R1,#+1
LDRB R0,[R4, #+4]
LSLS R1,R1,R0
UXTH R1,R1 ;; ZeroExtS R1,R1,#+16,#+16
LDR R0,[R4, #+0]
BL GPIO_InOut
MOVS R0,#+0
MOVS R7,R0
??Read_SHT_2:
UXTB R7,R7 ;; ZeroExtS R7,R7,#+24,#+24
CMP R7,#+8
BCS.N ??Read_SHT_3
LSLS R6,R6,#+1
MOVS R0,#+20
BL delay
LDR R0,[R4, #+8]
LDR R0,[R0, #+12]
MOVS R1,#+1
LDRB R2,[R4, #+12]
LSLS R1,R1,R2
ORRS R1,R1,R0
LDR R0,[R4, #+8]
STR R1,[R0, #+12]
MOVS R0,#+20
BL delay
MOVS R1,#+1
LDRB R0,[R4, #+4]
LSLS R1,R1,R0
UXTH R1,R1 ;; ZeroExtS R1,R1,#+16,#+16
LDR R0,[R4, #+0]
BL GPIO_ReadInputDataBit
STRB R0,[SP, #+0]
LDRB R0,[SP, #+0]
CMP R0,#+0
BEQ.N ??Read_SHT_4
ORRS R6,R6,#0x1
??Read_SHT_4:
LDR R0,[R4, #+8]
LDR R0,[R0, #+12]
MOVS R1,#+1
LDRB R2,[R4, #+12]
LSLS R1,R1,R2
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -