📄 i2c_master.s43
字号:
JNE ??setDCO_1
MOV.W #0x0, &0x166
MOV.W #0x0, &0x160
RET
??setDCO_1:
CMP.W #0xf5, R15
JNC ??setDCO_2
ADD.B #0xff, &0x56
CMP.B #0xff, &0x56
JNE ??setDCO_0
CMP.B #0xb0, &0x57
JEQ ??setDCO_0
ADD.B #0xff, &0x57
JMP ??setDCO_0
??setDCO_2:
ADD.B #0x1, &0x56
CMP.B #0x0, &0x56
JNE ??setDCO_0
CMP.B #0xb7, &0x57
JEQ ??setDCO_0
ADD.B #0x1, &0x57
JMP ??setDCO_0
CFI EndBlock cfiBlock1
RSEG CODE:CODE:REORDER:NOROOT(1)
sysInit:
CFI Block cfiBlock2 Using cfiCommon0
CFI Function sysInit
FUNCALL sysInit, setDCO
LOCFRAME CSTACK, 2, STACK
FUNCALL sysInit, configI2C
LOCFRAME CSTACK, 2, STACK
FUNCALL sysInit, configUart1
LOCFRAME CSTACK, 2, STACK
FUNCALL sysInit, configWDT
LOCFRAME CSTACK, 2, STACK
CALL #setDCO
BIS.B #0x30, &0x24
MOV.B #0x0, &0x23
BIS.B #0x30, &0x25
BIS.B #0x70, &0x32
BIS.B #0x70, &0x33
MOV.B #0x0, &0x29
BIC.B #0x1, &0x2c
BIC.B #0x1, &0x2b
BIS.B #0x1, &0x2d
CALL #configI2C
CALL #configUart1
BR #configWDT
CFI EndBlock cfiBlock2
RSEG CODE:CODE:REORDER:NOROOT(1)
configI2C:
CFI Block cfiBlock3 Using cfiCommon0
CFI Function configI2C
BIS.B #0xa, &0x1b
MOV.B #0x1, &0x70
BIS.B #0x24, &0x70
BIC.B #0x1, &0x70
MOV.W #0x30, &0x118
MOV.B #0x0, &0x73
MOV.B #0x0, &0x74
MOV.B #0x0, &0x75
MOV.B #0x60, &0x71
BIS.B #0x1, &0x70
RET
CFI EndBlock cfiBlock3
RSEG CODE:CODE:REORDER:NOROOT(1)
configUart1:
CFI Block cfiBlock4 Using cfiCommon0
CFI Function configUart1
MOV.W #0x68, R14
BIS.B #0xc0, &0x1b
BIS.B #0x30, &0x5
BIS.B #0x11, &0x78
BIS.B #0x20, &0x79
MOV.B R14, R15
MOV.B R15, &0x7c
MOV.W R14, R15
SWPB R15
AND.W #0xff, R15
MOV.B R15, &0x7d
MOV.B #0x0, &0x7b
BIC.B #0x1, &0x78
BIS.B #0x10, &0x1
RET
CFI EndBlock cfiBlock4
RSEG CODE:CODE:REORDER:NOROOT(1)
configWDT:
CFI Block cfiBlock5 Using cfiCommon0
CFI Function configWDT
MOV.W #0x5a1f, &0x120
RET
CFI EndBlock cfiBlock5
RSEG CODE:CODE:REORDER:NOROOT(1)
iicSend:
CFI Block cfiBlock6 Using cfiCommon0
CFI Function iicSend
MOV.B 0x2(SP), R15
??iicSend_0:
BIT.B #0x1, &0x72
JC ??iicSend_0
CMP.B #0x0, R15
JEQ ??iicSend_1
MOV.B #0x0, &0x50
MOV.B #0x0, &0x51
MOV.B #0x0, &rxIdx
AND.W #0xff, R12
MOV.W R12, &0x11a
BIC.B #0x1, &0x70
MOV.B #0x60, &0x71
BIS.B #0x1, &0x70
MOV.B #0x10, &0x50
BIS.B #0x2, &0x70
BIS.B #0x1, &0x71
RET
??iicSend_1:
MOV.B #0x0, &0x50
MOV.B #0x0, &0x51
MOV.B #0x0, &txIdx
AND.W #0xff, R12
MOV.W R12, &0x11a
BIC.B #0x1, &0x70
MOV.B #0x20, &0x71
BIS.B #0x1, &0x70
MOV.B R14, &0x52
MOV.B #0x20, &0x50
BIS.B #0x2, &0x70
BIS.B #0xb, &0x71
RET
CFI EndBlock cfiBlock6
RSEG CODE:CODE:REORDER:NOROOT(1)
main:
CFI Block cfiBlock7 Using cfiCommon0
CFI Function main
FUNCALL main, sysInit
LOCFRAME CSTACK, 4, STACK
FUNCALL main, txStr
LOCFRAME CSTACK, 4, STACK
FUNCALL main, sw1Options
LOCFRAME CSTACK, 4, STACK
FUNCALL main, sw2Options
LOCFRAME CSTACK, 4, STACK
FUNCALL main, txStr
LOCFRAME CSTACK, 4, STACK
FUNCALL main, getEvent
LOCFRAME CSTACK, 4, STACK
FUNCALL main, iicSend
LOCFRAME CSTACK, 6, STACK
FUNCALL main, iicSend
LOCFRAME CSTACK, 8, STACK
FUNCALL main, txStr
LOCFRAME CSTACK, 8, STACK
FUNCALL main, txStr
LOCFRAME CSTACK, 4, STACK
FUNCALL main, txByte
LOCFRAME CSTACK, 4, STACK
FUNCALL main, txStr
LOCFRAME CSTACK, 4, STACK
FUNCALL main, getInputState
LOCFRAME CSTACK, 4, STACK
FUNCALL main, iicSend
LOCFRAME CSTACK, 6, STACK
FUNCALL main, iicSend
LOCFRAME CSTACK, 8, STACK
FUNCALL main, txStr
LOCFRAME CSTACK, 8, STACK
FUNCALL main, txStr
LOCFRAME CSTACK, 4, STACK
FUNCALL main, txByte
LOCFRAME CSTACK, 4, STACK
FUNCALL main, txStr
LOCFRAME CSTACK, 4, STACK
FUNCALL main, getIRData
LOCFRAME CSTACK, 4, STACK
FUNCALL main, iicSend
LOCFRAME CSTACK, 6, STACK
FUNCALL main, iicSend
LOCFRAME CSTACK, 8, STACK
FUNCALL main, txStr
LOCFRAME CSTACK, 8, STACK
FUNCALL main, txStr
LOCFRAME CSTACK, 4, STACK
FUNCALL main, txByte
LOCFRAME CSTACK, 4, STACK
PUSH.W R10
CFI R10 Frame(CFA, -4)
CFI CFA SP+4
CALL #sysInit
MOV.W #`?<Constant "\\033[2JI2C Master\\r\\n\\n">`, R12
CALL #txStr
??main_0:
CMP.B #0x0, &Event
JNE ??main_4
BIS.W #0x18, SR
NOP
??main_4:
BIT.B #0x1, &Event
JNC ??main_5
BIC.B #0x1, &Event
CALL #sw1Options
??main_5:
BIT.B #0x2, &Event
JNC ??main_6
BIC.B #0x2, &Event
CALL #sw2Options
??main_6:
BIT.B #0x4, &Event
JNC ??main_0
BIC.B #0x4, &Event
MOV.W #`?<Constant "\\r\\n\\nInt - Get Interrup...">`, R12
CALL #txStr
CALL #getEvent
PUSH.B #0x0
CFI CFA SP+6
MOV.B &TX_DATA, R14
MOV.B #0x23, R12
CALL #iicSend
PUSH.B #0x1
CFI CFA SP+8
MOV.B #0x0, R14
MOV.B #0x23, R12
CALL #iicSend
MOV.W #`?<Constant "\\r\\nInterrupt Event:">`, R12
CALL #txStr
MOV.B #0x1, R10
ADD.W #0x4, SP
CFI CFA SP+4
??main_1:
CMP.B &RX_DATA, R10
JC ??main_7
MOV.W #`?<Constant " ">`, R12
CALL #txStr
AND.W #0xff, R10
MOV.B RX_DATA(R10), R12
CALL #txByte
ADD.B #0x1, R10
JMP ??main_1
??main_7:
BIT.B #0x1, &RX_DATA + 2
JNC ??main_8
MOV.W #`?<Constant "\\r\\nInt - Get Input Pin...">`, R12
CALL #txStr
CALL #getInputState
PUSH.B #0x0
CFI CFA SP+6
MOV.B &TX_DATA, R14
MOV.B #0x23, R12
CALL #iicSend
PUSH.B #0x1
CFI CFA SP+8
MOV.B #0x0, R14
MOV.B #0x23, R12
CALL #iicSend
MOV.W #`?<Constant "\\r\\nPin State:">`, R12
CALL #txStr
MOV.B #0x1, R10
ADD.W #0x4, SP
CFI CFA SP+4
??main_2:
CMP.B &RX_DATA, R10
JC ??main_8
MOV.W #`?<Constant " ">`, R12
CALL #txStr
AND.W #0xff, R10
MOV.B RX_DATA(R10), R12
CALL #txByte
ADD.B #0x1, R10
JMP ??main_2
??main_8:
BIT.B #0x2, &RX_DATA + 2
JNC ??main_0
MOV.W #`?<Constant "\\r\\nInt - Get IR Data">`, R12
CALL #txStr
CALL #getIRData
PUSH.B #0x0
CFI CFA SP+6
MOV.B &TX_DATA, R14
MOV.B #0x23, R12
CALL #iicSend
PUSH.B #0x1
CFI CFA SP+8
MOV.B #0x0, R14
MOV.B #0x23, R12
CALL #iicSend
MOV.W #`?<Constant "\\r\\nIR Data:">`, R12
CALL #txStr
MOV.B #0x1, R10
ADD.W #0x4, SP
CFI CFA SP+4
??main_3:
CMP.B &RX_DATA, R10
JC ??main_0
MOV.W #`?<Constant " ">`, R12
CALL #txStr
AND.W #0xff, R10
MOV.B RX_DATA(R10), R12
CALL #txByte
ADD.B #0x1, R10
JMP ??main_3
CFI EndBlock cfiBlock7
RSEG CODE:CODE:REORDER:NOROOT(1)
I2C_IV:
CFI Block cfiBlock8 Using cfiCommon1
CFI Function I2C_IV
PUSH.W R15
CFI R15 Frame(CFA, -6)
CFI CFA SP+6
PUSH.W R14
CFI R14 Frame(CFA, -8)
CFI CFA SP+8
MOV.W &0x11c, R15
SUB.W #0xa, R15
JEQ ??I2C_IV_0
SUB.W #0x2, R15
JEQ ??I2C_IV_1
JMP ??I2C_IV_2
??I2C_IV_0:
MOV.B &rxIdx, R15
AND.W #0xff, R15
MOV.B &0x76, RX_DATA(R15)
ADD.B #0x1, &rxIdx
CMP.B #0x1, &rxIdx
JNE ??I2C_IV_3
MOV.B &RX_DATA, R14
ADD.B #0xff, R14
MOV.B R14, &rxMsgLen
??I2C_IV_3:
MOV.B &rxMsgLen, R14
ADD.B #0xff, R14
MOV.B R14, &rxMsgLen
CMP.B #0x0, R14
JNE ??I2C_IV_2
BIS.B #0x2, &0x71
JMP ??I2C_IV_2
??I2C_IV_1:
MOV.B &txIdx, R15
AND.W #0xff, R15
MOV.B TX_DATA(R15), &0x76
ADD.B #0x1, &txIdx
??I2C_IV_2:
POP.W R14
CFI R14 SameValue
CFI CFA SP+6
POP.W R15
CFI R15 SameValue
CFI CFA SP+4
RETI
CFI EndBlock cfiBlock8
RSEG CODE:CODE:REORDER:NOROOT(1)
port1_ISR:
CFI Block cfiBlock9 Using cfiCommon1
CFI Function port1_ISR
BIT.B #0x10, &0x23
JNC ??port1_ISR_0
BIC.B #0x10, &0x25
BIC.B #0x10, &0x23
MOV.B #0x14, &debounceCnt
BIS.B #0x1, &0x0
??port1_ISR_0:
BIT.B #0x20, &0x23
JNC ??port1_ISR_1
BIC.B #0x20, &0x25
BIC.B #0x20, &0x23
MOV.B #0x14, &debounceCnt + 1
BIS.B #0x1, &0x0
??port1_ISR_1:
RETI
CFI EndBlock cfiBlock9
RSEG CODE:CODE:REORDER:NOROOT(1)
port2_ISR:
CFI Block cfiBlock10 Using cfiCommon1
CFI Function port2_ISR
BIT.B #0x1, &0x2b
JNC ??port2_ISR_0
BIC.B #0x1, &0x2d
BIC.B #0x1, &0x2b
BIS.B #0x4, &Event
BIC.W #0x10, 0x0(SP)
??port2_ISR_0:
RETI
CFI EndBlock cfiBlock10
RSEG CODE:CODE:REORDER:NOROOT(1)
wdt_ISR:
CFI Block cfiBlock11 Using cfiCommon1
CFI Function wdt_ISR
PUSH.W R15
CFI R15 Frame(CFA, -6)
CFI CFA SP+6
PUSH.W R14
CFI R14 Frame(CFA, -8)
CFI CFA SP+8
MOV.B #0x0, R14
CMP.B #0x1, &debounceCnt
JNC ??wdt_ISR_0
MOV.B &debounceCnt, R15
ADD.B #0xff, R15
MOV.B R15, &debounceCnt
CMP.B #0x0, R15
JNE ??wdt_ISR_1
BIC.B #0x10, &0x23
BIS.B #0x10, &0x25
BIS.B #0x1, &Event
BIC.W #0x10, 0x4(SP)
JMP ??wdt_ISR_0
??wdt_ISR_1:
MOV.B #0x1, R14
??wdt_ISR_0:
CMP.B #0x1, &debounceCnt + 1
JNC ??wdt_ISR_2
MOV.B &debounceCnt + 1, R15
ADD.B #0xff, R15
MOV.B R15, &debounceCnt + 1
CMP.B #0x0, R15
JNE ??wdt_ISR_3
BIC.B #0x20, &0x23
BIS.B #0x20, &0x25
BIS.B #0x2, &Event
BIC.W #0x10, 0x4(SP)
JMP ??wdt_ISR_2
??wdt_ISR_3:
MOV.B #0x1, R14
??wdt_ISR_2:
CMP.B #0x0, R14
JNE ??wdt_ISR_4
BIC.B #0x1, &0x0
??wdt_ISR_4:
POP.W R14
CFI R14 SameValue
CFI CFA SP+6
POP.W R15
CFI R15 SameValue
CFI CFA SP+4
RETI
CFI EndBlock cfiBlock11
RSEG CODE:CODE:REORDER:NOROOT(1)
sw1Options:
CFI Block cfiBlock12 Using cfiCommon0
CFI Function sw1Options
MOV.B &0x1c, R12
AND.B #0xff, R12
CALL #?ShiftRight16u_4
MOV.B R12, R14
RET
CFI EndBlock cfiBlock12
RSEG CODE:CODE:REORDER:NOROOT(1)
sw2Options:
CFI Block cfiBlock13 Using cfiCommon0
CFI Function sw2Options
FUNCALL sw2Options, txStr
LOCFRAME CSTACK, 6, STACK
FUNCALL sw2Options, getRTC
LOCFRAME CSTACK, 6, STACK
FUNCALL sw2Options, iicSend
LOCFRAME CSTACK, 8, STACK
FUNCALL sw2Options, iicSend
LOCFRAME CSTACK, 10, STACK
FUNCALL sw2Options, txStr
LOCFRAME CSTACK, 10, STACK
FUNCALL sw2Options, txStr
LOCFRAME CSTACK, 6, STACK
FUNCALL sw2Options, txByte
LOCFRAME CSTACK, 6, STACK
FUNCALL sw2Options, txStr
LOCFRAME CSTACK, 6, STACK
FUNCALL sw2Options, setRTC
LOCFRAME CSTACK, 6, STACK
FUNCALL sw2Options, iicSend
LOCFRAME CSTACK, 8, STACK
FUNCALL sw2Options, txStr
LOCFRAME CSTACK, 8, STACK
FUNCALL sw2Options, txStr
LOCFRAME CSTACK, 6, STACK
FUNCALL sw2Options, getIRData
LOCFRAME CSTACK, 6, STACK
FUNCALL sw2Options, iicSend
LOCFRAME CSTACK, 8, STACK
FUNCALL sw2Options, iicSend
LOCFRAME CSTACK, 10, STACK
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -