📄 freerun_timer.asm
字号:
// FR Family SOFTUNE cpcom V65L04
.program "freerun_timer"
.library "lib911.lib"
._LANGUAGE C_FR20, N, U, F
._FILE "D:\kongou\MAE\soft\sample_soft\200803_Sample\MB91635\32bit_FRT\freerun_timer.c", 0
._FILE "D:\kongou\MAE\soft\sample_soft\200803_Sample\MB91635\32bit_FRT\freerun_timer.h", 1
._FILE "..\IOH_MB91635_V01L02\mb91635.h", 2
._FILE "..\IOH_MB91635_V01L02\_fr.h", 3
._BTYPE 0x80000001, 1
._BTYPE 0x80000002, 1
._BTYPE 0x80000003, 2
._BTYPE 0x80000004, 2
._BTYPE 0x80000005, 4
._BTYPE 0x80000006, 4
._BTYPE 0x80000007, 4
._BTYPE 0x80000008, 4
._BTYPE 0x80000009, 1
._BTYPE 0x8000000a, 2
._BTYPE 0x8000000b, 4
._BTYPE 0x8000000c, 8
._BTYPE 0x8000000d, 8
._BTYPE 0x8000000e, 1
._BTYPE 0x8000000f, 0
._BTYPE 0x80000010, 8
._BTYPE 0x80000011, 8
.global _IO_PDR0
.global _IO_PDR1
.global _IO_PDR2
.global _IO_PDR3
.global _IO_PDR4
.global _IO_PDR5
.global _IO_PDR6
.global _IO_PDR7
.global _IO_PDR8
.global _IO_PDR9
.global _IO_PDRA
.global _IO_PDRB
.global _IO_PDRC
.global _IO_PDRG
.global _IO_PDRH
.global _IO_PDRI
.global _IO_PDRK
.global _IO_WDTCR0
.global _IO_WDTCPR0
.global _IO_EIRR0
.global _IO_ENIR0
.global _IO_ELVR0
.global _IO_DICR
.global _IO_TMRLRA0
.global _IO_TMR0
.global _IO_TMCSR0
.global _IO_TMRLRA1
.global _IO_TMR1
.global _IO_TMCSR1
.global _IO_TMRLRA2
.global _IO_TMR2
.global _IO_TMCSR2
.global _IO_UART0
.global _IO_UART1
.global _IO_UART2
.global _IO_UART3
.global _IO_UART4
.global _IO_UART5
.global _IO_UART6
.global _IO_UART7
.global _IO_UART0_I2C0
.global _IO_RDRM0123
.global _IO_RDRM4567
.global _IO_SSEL0123
.global _IO_SSEL4567
.global _IO_UART8
.global _IO_UART9
.global _IO_UART10
.global _IO_UART11
.global _IO_EIRR1
.global _IO_ENIR1
.global _IO_ELVR1
.global _IO_EIRR2
.global _IO_ENIR2
.global _IO_ELVR2
.global _IO_EIRR3
.global _IO_ENIR3
.global _IO_ELVR3
.global _IO_AD0
.global _IO_BT0
.global _IO_BT1
.global _IO_BT2
.global _IO_BT3
.global _IO_BTSEL0123
.global _IO_DAC
.global _IO_AD1
.global _IO_ADCHE
.global _IO_IRPR
.global _IO_UD0
.global _IO_UD1
.global _IO_UD2
.global _IO_UD3
.global _IO_CPCLR0
.global _IO_TCDT0
.global _IO_TCCSH0
.global _IO_TCCSL0
.global _IO_IPCP0
.global _IO_IPCP1
.global _IO_IPCP2
.global _IO_IPCP3
.global _IO_ICS01
.global _IO_ICS23
.global _IO_IPCP4
.global _IO_IPCP5
.global _IO_IPCP6
.global _IO_IPCP7
.global _IO_ICS45
.global _IO_ICS67
.global _IO_OCCP0
.global _IO_OCCP1
.global _IO_OCCP2
.global _IO_OCCP3
.global _IO_OCS01
.global _IO_OCS23
.global _IO_OCCP4
.global _IO_OCCP5
.global _IO_OCCP6
.global _IO_OCCP7
.global _IO_OCS45
.global _IO_OCS67
.global _IO_FRTSEL
.global _IO_CPCLR1
.global _IO_TCDT1
.global _IO_TCCSH1
.global _IO_TCCSL1
.global _IO_FCTLR
.global _IO_FSTR
.global _IO_WREN
.global _IO_WRAR00
.global _IO_WRDR00
.global _IO_WRAR01
.global _IO_WRDR01
.global _IO_WRAR02
.global _IO_WRDR02
.global _IO_WRAR03
.global _IO_WRDR03
.global _IO_WRAR04
.global _IO_WRDR04
.global _IO_WRAR05
.global _IO_WRDR05
.global _IO_WRAR06
.global _IO_WRDR06
.global _IO_WRAR07
.global _IO_WRDR07
.global _IO_WRAR08
.global _IO_WRDR08
.global _IO_WRAR09
.global _IO_WRDR09
.global _IO_WRAR10
.global _IO_WRDR10
.global _IO_WRAR11
.global _IO_WRDR11
.global _IO_WRAR12
.global _IO_WRDR12
.global _IO_WRAR13
.global _IO_WRDR13
.global _IO_WRAR14
.global _IO_WRDR14
.global _IO_WRAR15
.global _IO_WRDR15
.global _IO_PORT1
.global _IO_ICR
.global _IO_CLK
.global _IO_IORR
.global _IO_PORT2
.global _IO_PORT3
.global _IO_ICSEL
.global _IO_CLKG
.global _IO_WTC
.global _IO_EBUS
.global _IO_DMAC
.global _IO_DNMIR
.global _IO_DILVR
.global _IO_DMACR
.global _IO_BT4
.global _IO_BT5
.global _IO_BT6
.global _IO_BT7
.global _IO_BTSEL4567
.global _IO_BT8
.global _IO_BT9
.global _IO_BTA
.global _IO_BTB
.global _IO_BTSEL89AB
.global _IO_BTC
.global _IO_BTD
.global _IO_BTE
.global _IO_BTF
.global _IO_BTSELCDEF
.global _IO_BTSSSR
.section INIT, DATA, align=4
.global _frt_count1
.align 2
_frt_count1:
.half 0
.global _frt_count0
_frt_count0:
.half 0
.section CODE, CODE, align=2
.global _FRT_initialize
._SYMBOL "FRT_initialize", F, 0x8000000f, E, "_FRT_initialize", F
._FPARAM S, 0, F
._FPARAM E
._CONFIG S, F, 1
._LINE 0, 23
_FRT_initialize:
L_20:
ST RP,@-SP
ENTER #4
;-------end_of_no_optimize_block
._FUNCTION "fp", "fp", 16
._CONFIG S, B
L_21: // Pred: L_20
._LINE 0, 25
LDI:32 #_IO_ICR+27,R0
LDI #16,R1
STB R1,@R0
._LINE 0, 26
LDI:32 #_IO_PORT3+34,R1
LDI #0,R0
STB R0,@R1 ; _IO_PORT3
._LINE 0, 27
LDI:32 #_IO_FRTSEL,R1
STB R0,@R1 ; _IO_FRTSEL
._LINE 0, 30
LDI:32 #_IO_TCCSH0,R0
LDI #1,R1
STB R1,@R0 ; _IO_TCCSH0
._LINE 0, 31
LDI:32 #_IO_TCCSL0,R2
LDI #80,R0
STB R0,@R2 ; _IO_TCCSL0
._LINE 0, 32
LDI:32 #_IO_CPCLR0,R12
LDI #16777215,R2
ST R2,@R12 ; _IO_CPCLR0
._LINE 0, 33
LDI:32 #_IO_TCDT0,R2
LDI #0,R12
ST R12,@R2 ; _IO_TCDT0
._LINE 0, 36
LDI:32 #_IO_TCCSH1,R2
STB R1,@R2 ; _IO_TCCSH1
._LINE 0, 37
LDI:32 #_IO_TCCSL1,R1
STB R0,@R1 ; _IO_TCCSL1
._LINE 0, 38
LDI:32 #_IO_CPCLR1,R0
LDI #268435455,R1
ST R1,@R0 ; _IO_CPCLR1
._LINE 0, 39
LDI:32 #_IO_TCDT1,R0
ST R12,@R0 ; _IO_TCDT1
L_22: // Pred: L_21
._LINE 0, 39
._CONFIG E
._LINE 0, 40
LEAVE
LD @SP+,RP
RET
._CONFIG E
.global _FRT_start_timer
._SYMBOL "FRT_start_timer", F, 0x8000000f, E, "_FRT_start_timer", F
._FPARAM S, 0, F
._FPARAM E
._CONFIG S, F, 1
._LINE 0, 47
_FRT_start_timer:
L_23:
ST RP,@-SP
ENTER #4
;-------end_of_no_optimize_block
._FUNCTION "fp", "fp", 16
._CONFIG S, B
L_24: // Pred: L_23
._LINE 0, 49
LDI:32 #_IO_TCCSL0,R12
BAND #0xBF,@R12
._LINE 0, 50
LDI:32 #_IO_TCCSL1,R12
BAND #0xBF,@R12
L_25: // Pred: L_24
._LINE 0, 50
._CONFIG E
._LINE 0, 51
LEAVE
LD @SP+,RP
RET
._CONFIG E
.global _FRT_stop_timer
._SYMBOL "FRT_stop_timer", F, 0x8000000f, E, "_FRT_stop_timer", F
._FPARAM S, 0, F
._FPARAM E
._CONFIG S, F, 1
._LINE 0, 58
_FRT_stop_timer:
L_26:
ST RP,@-SP
ENTER #4
;-------end_of_no_optimize_block
._FUNCTION "fp", "fp", 16
._CONFIG S, B
L_27: // Pred: L_26
._LINE 0, 60
LDI:32 #_IO_TCCSL0,R12
BOR #0x40,@R12
._LINE 0, 61
LDI:32 #_IO_TCCSL1,R12
BOR #0x40,@R12
L_28: // Pred: L_27
._LINE 0, 61
._CONFIG E
._LINE 0, 62
LEAVE
LD @SP+,RP
RET
._CONFIG E
.global _FRT_intr
._SYMBOL "FRT_intr", F, 0x8000000f, E, "_FRT_intr", I
._FPARAM S, 0, F
._FPARAM E
._CONFIG S, F, 1
._LINE 0, 69
_FRT_intr:
L_29:
STM (R0,R1,R12)
ST RP,@-SP
ENTER #4
;-------end_of_no_optimize_block
._FUNCTION "fp", "fp", 16
._CONFIG S, B
L_30: // Pred: L_29
._LINE 0, 71
LDI:32 #_IO_TCCSH0,R0
BTSTL #0x2,@R0
BEQ32 L_32,R12
L_31: // Pred: L_30
._LINE 0, 71
._LINE 0, 72
BAND #0xFD,@R0
._LINE 0, 74
LDI:32 #_frt_count0,R0
LDUH @R0,R1 ; _frt_count0
LDI #65535,R12
CMP R1,R12
BNE32 L_34,R12
L_33: // Pred: L_31
._LINE 0, 74
._LINE 0, 75
LDI #0,R1
STH R1,@R0 ; _frt_count0
._LINE 0, 76
BRA32 L_32,R12
L_34: // Pred: L_31
._LINE 0, 77
._LINE 0, 78
LDUH @R0,R1 ; _frt_count0
ADDN #1,R1
STH R1,@R0 ; _frt_count0
._LINE 0, 79
L_32: // Pred: L_34 L_33 L_30
._LINE 0, 82
LDI:32 #_IO_TCCSH1,R0
BTSTL #0x2,@R0
BEQ32 L_41,R12
L_36: // Pred: L_32
._LINE 0, 82
._LINE 0, 83
BAND #0xFD,@R0
._LINE 0, 85
LDI:32 #_frt_count1,R0
LDUH @R0,R1 ; _frt_count1
LDI #65535,R12
CMP R1,R12
BNE32 L_39,R12
L_38: // Pred: L_36
._LINE 0, 85
._LINE 0, 86
LDI #0,R1
STH R1,@R0 ; _frt_count1
._LINE 0, 87
BRA32 L_41,R12
L_39: // Pred: L_36
._LINE 0, 88
._LINE 0, 89
LDUH @R0,R1 ; _frt_count1
ADDN #1,R1
STH R1,@R0 ; _frt_count1
._LINE 0, 90
L_41: // Pred: L_39 L_38 L_32
._LINE 0, 91
._CONFIG E
._LINE 0, 93
LEAVE
LD @SP+,RP
LDM (R0,R1,R12)
RETI
._CONFIG E
._SYMBOL "frt_count1", V, 0x80000004, E, "_frt_count1"
._SYMBOL "frt_count0", V, 0x80000004, E, "_frt_count0"
.end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -