📄 i2c_master.s43
字号:
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, getIRVal
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, getInputState
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
PUSH.W R10
CFI R10 Frame(CFA, -4)
CFI CFA SP+4
PUSH.W R11
CFI R11 Frame(CFA, -6)
CFI CFA SP+6
MOV.B &0x1c, R12
AND.B #0xff, R12
CALL #?ShiftRight16u_4
MOV.B R12, R11
MOV.B R11, R14
SUB.B #0x0, R14
JEQ ??sw2Options_4
SUB.B #0x1, R14
JEQ ??sw2Options_5
SUB.B #0x1, R14
JEQ ??sw2Options_6
SUB.B #0x1, R14
JEQ ??sw2Options_7
SUB.B #0x1, R14
JEQ ??sw2Options_8
JMP ??sw2Options_9
??sw2Options_4:
MOV.W #`?<Constant "\\r\\nGet RTC Parameters">`, R12
CALL #txStr
CALL #getRTC
PUSH.B #0x0
CFI CFA SP+8
MOV.B &TX_DATA, R14
MOV.B #0x23, R12
CALL #iicSend
PUSH.B #0x1
CFI CFA SP+10
MOV.B #0x0, R14
MOV.B #0x23, R12
CALL #iicSend
MOV.W #`?<Constant "\\r\\nRTC Parameters:">`, R12
CALL #txStr
MOV.B #0x1, R10
ADD.W #0x4, SP
CFI CFA SP+6
??sw2Options_0:
CMP.B &RX_DATA, R10
JC ??sw2Options_9
MOV.W #`?<Constant " ">`, R12
CALL #txStr
AND.W #0xff, R10
MOV.B RX_DATA(R10), R12
CALL #txByte
ADD.B #0x1, R10
JMP ??sw2Options_0
??sw2Options_5:
MOV.W #`?<Constant "\\r\\nSet RTC Parameters">`, R12
CALL #txStr
CALL #setRTC
PUSH.B #0x0
CFI CFA SP+8
MOV.B &TX_DATA, R14
MOV.B #0x23, R12
CALL #iicSend
MOV.W #`?<Constant "...done.">`, R12
CALL #txStr
ADD.W #0x2, SP
CFI CFA SP+6
JMP ??sw2Options_9
??sw2Options_6:
MOV.W #`?<Constant "\\r\\nGet IR Data">`, R12
CALL #txStr
CALL #getIRData
PUSH.B #0x0
CFI CFA SP+8
MOV.B &TX_DATA, R14
MOV.B #0x23, R12
CALL #iicSend
PUSH.B #0x1
CFI CFA SP+10
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+6
??sw2Options_1:
CMP.B &RX_DATA, R10
JC ??sw2Options_9
MOV.W #`?<Constant " ">`, R12
CALL #txStr
AND.W #0xff, R10
MOV.B RX_DATA(R10), R12
CALL #txByte
ADD.B #0x1, R10
JMP ??sw2Options_1
??sw2Options_7:
MOV.W #`?<Constant "\\r\\nGet Last IR Value">`, R12
CALL #txStr
CALL #getIRVal
PUSH.B #0x0
CFI CFA SP+8
MOV.B &TX_DATA, R14
MOV.B #0x23, R12
CALL #iicSend
PUSH.B #0x1
CFI CFA SP+10
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+6
??sw2Options_2:
CMP.B &RX_DATA, R10
JC ??sw2Options_9
MOV.W #`?<Constant " ">`, R12
CALL #txStr
AND.W #0xff, R10
MOV.B RX_DATA(R10), R12
CALL #txByte
ADD.B #0x1, R10
JMP ??sw2Options_2
??sw2Options_8:
MOV.W #`?<Constant "\\r\\nGet Port Pin State">`, R12
CALL #txStr
CALL #getInputState
PUSH.B #0x0
CFI CFA SP+8
MOV.B &TX_DATA, R14
MOV.B #0x23, R12
CALL #iicSend
PUSH.B #0x1
CFI CFA SP+10
MOV.B #0x0, R14
MOV.B #0x23, R12
CALL #iicSend
MOV.W #`?<Constant "\\r\\nPort Pin:">`, R12
CALL #txStr
MOV.B #0x1, R10
ADD.W #0x4, SP
CFI CFA SP+6
??sw2Options_3:
CMP.B &RX_DATA, R10
JC ??sw2Options_9
MOV.W #`?<Constant " ">`, R12
CALL #txStr
AND.W #0xff, R10
MOV.B RX_DATA(R10), R12
CALL #txByte
ADD.B #0x1, R10
JMP ??sw2Options_3
??sw2Options_9:
POP.W R11
CFI R11 SameValue
CFI CFA SP+4
POP.W R10
CFI R10 SameValue
CFI CFA SP+2
RET
CFI EndBlock cfiBlock13
RSEG CODE:CODE:REORDER:NOROOT(1)
usart1_Rx_ISR:
CFI Block cfiBlock14 Using cfiCommon1
CFI Function usart1_Rx_ISR
PUSH.W R14
CFI R14 Frame(CFA, -6)
CFI CFA SP+6
??usart1_Rx_ISR_0:
BIT.B #0x20, &0x3
JNC ??usart1_Rx_ISR_0
MOV.B &0x7e, R14
ADD.B #0x1, R14
MOV.B R14, &0x7f
POP.W R14
CFI R14 SameValue
CFI CFA SP+4
RETI
CFI EndBlock cfiBlock14
RSEG CODE:CODE:REORDER:NOROOT(1)
txStr:
CFI Block cfiBlock15 Using cfiCommon0
CFI Function txStr
MOV.W #0x0, R15
??txStr_1:
CMP.B #0x0, 0(R12)
JEQ ??txStr_2
??txStr_0:
BIT.B #0x20, &0x3
JC ??txStr_3
ADD.W #0x1, R15
CMP.W #0x2710, R15
JNE ??txStr_0
RET
??txStr_3:
MOV.B @R12, &0x7f
ADD.W #0x1, R12
JMP ??txStr_1
??txStr_2:
RET
CFI EndBlock cfiBlock15
RSEG CODE:CODE:REORDER:NOROOT(1)
txByte:
CFI Block cfiBlock16 Using cfiCommon0
CFI Function txByte
FUNCALL txByte, txStr
LOCFRAME CSTACK, 6, STACK
SUB.W #0x4, SP
CFI CFA SP+6
MOV.B R12, R14
MOV.B R14, R12
AND.B #0xff, R12
CALL #?ShiftRight16u_4
MOV.B R12, 0x0(SP)
MOV.B R14, R15
AND.B #0xf, R15
MOV.B R15, 0x1(SP)
MOV.B #0x0, 0x2(SP)
MOV.B #0x0, R13
??txByte_0:
CMP.B #0x2, R13
JC ??txByte_1
MOV.B R13, R15
AND.W #0xff, R15
ADD.W SP, R15
CMP.B #0xa, 0x0(R15)
JNC ??txByte_2
MOV.B R13, R15
AND.W #0xff, R15
ADD.W SP, R15
ADD.B #0x37, 0x0(R15)
JMP ??txByte_3
??txByte_2:
MOV.B R13, R15
AND.W #0xff, R15
ADD.W SP, R15
ADD.B #0x30, 0x0(R15)
??txByte_3:
ADD.B #0x1, R13
JMP ??txByte_0
??txByte_1:
MOV.W SP, R12
CALL #txStr
ADD.W #0x4, SP
CFI CFA SP+2
RET
CFI EndBlock cfiBlock16
RSEG CODE:CODE:REORDER:NOROOT(1)
txWord:
CFI Block cfiBlock17 Using cfiCommon0
CFI Function txWord
FUNCALL txWord, txByte
LOCFRAME CSTACK, 4, STACK
FUNCALL txWord, txByte
LOCFRAME CSTACK, 4, STACK
PUSH.W R10
CFI R10 Frame(CFA, -4)
CFI CFA SP+4
MOV.W R12, R10
MOV.W R10, R12
SWPB R12
AND.W #0xff, R12
CALL #txByte
MOV.B R10, R12
CALL #txByte
POP.W R10
CFI R10 SameValue
CFI CFA SP+2
RET
CFI EndBlock cfiBlock17
RSEG CODE:CODE:REORDER:NOROOT(1)
getRTC:
CFI Block cfiBlock18 Using cfiCommon0
CFI Function getRTC
MOV.B #0x2, &TX_DATA
MOV.B #0x1, &TX_DATA + 1
RET
CFI EndBlock cfiBlock18
RSEG CODE:CODE:REORDER:NOROOT(1)
setRTC:
CFI Block cfiBlock19 Using cfiCommon0
CFI Function setRTC
MOV.B #0x9, &TX_DATA
MOV.B #0x0, &TX_DATA + 1
MOV.B #0x5, &TX_DATA + 2
MOV.B #0x20, &TX_DATA + 3
MOV.B #0x6, &TX_DATA + 4
MOV.B #0x1, &TX_DATA + 5
MOV.B #0x12, &TX_DATA + 6
MOV.B #0x0, &TX_DATA + 7
MOV.B #0x0, &TX_DATA + 8
RET
CFI EndBlock cfiBlock19
RSEG CODE:CODE:REORDER:NOROOT(1)
getIRData:
CFI Block cfiBlock20 Using cfiCommon0
CFI Function getIRData
MOV.B #0x2, &TX_DATA
MOV.B #0x2, &TX_DATA + 1
RET
CFI EndBlock cfiBlock20
RSEG CODE:CODE:REORDER:NOROOT(1)
getIRVal:
CFI Block cfiBlock21 Using cfiCommon0
CFI Function getIRVal
MOV.B #0x2, &TX_DATA
MOV.B #0x3, &TX_DATA + 1
RET
CFI EndBlock cfiBlock21
RSEG CODE:CODE:REORDER:NOROOT(1)
getInputState:
CFI Block cfiBlock22 Using cfiCommon0
CFI Function getInputState
MOV.B #0x2, &TX_DATA
MOV.B #0x4, &TX_DATA + 1
RET
CFI EndBlock cfiBlock22
RSEG CODE:CODE:REORDER:NOROOT(1)
getEvent:
CFI Block cfiBlock23 Using cfiCommon0
CFI Function getEvent
MOV.B #0x2, &TX_DATA
MOV.B #0x5, &TX_DATA + 1
RET
CFI EndBlock cfiBlock23
COMMON INTVEC:CONST:ROOT(1)
ORG 2
`??INTVEC 2`:
DC16 port2_ISR
COMMON INTVEC:CONST:ROOT(1)
ORG 6
`??INTVEC 6`:
DC16 usart1_Rx_ISR
COMMON INTVEC:CONST:ROOT(1)
ORG 8
`??INTVEC 8`:
DC16 port1_ISR
COMMON INTVEC:CONST:ROOT(1)
ORG 16
`??INTVEC 16`:
DC16 I2C_IV
COMMON INTVEC:CONST:ROOT(1)
ORG 20
`??INTVEC 20`:
DC16 wdt_ISR
RSEG CODE:CODE:REORDER:NOROOT(1)
?setjmp_save_r4:
REQUIRE ?setjmp_r4
REQUIRE ?longjmp_r4
RSEG CODE:CODE:REORDER:NOROOT(1)
?setjmp_save_r5:
REQUIRE ?setjmp_r5
REQUIRE ?longjmp_r5
RSEG DATA16_C:CONST:SORT:NOROOT(0)
`?<Constant "\\r\\nPort Pin:">`:
DC8 "\015\012Port Pin:"
RSEG DATA16_C:CONST:SORT:NOROOT(0)
`?<Constant "\\r\\nPin State:">`:
DC8 "\015\012Pin State:"
RSEG DATA16_C:CONST:SORT:NOROOT(0)
`?<Constant "\\r\\nInt - Get Input Pin...">`:
DC8 "\015\012Int - Get Input Pin State"
RSEG DATA16_C:CONST:SORT:NOROOT(0)
`?<Constant " ">`:
DC8 " "
RSEG DATA16_C:CONST:SORT:NOROOT(0)
`?<Constant "\\r\\nInterrupt Event:">`:
DC8 "\015\012Interrupt Event:"
RSEG DATA16_C:CONST:SORT:NOROOT(0)
`?<Constant "\\r\\n\\nInt - Get Interrup...">`:
DC8 "\015\012\012Int - Get Interrupt Event"
RSEG DATA16_C:CONST:SORT:NOROOT(0)
`?<Constant "\\033[2JI2C Master\\r\\n\\n">`:
DC8 "\033[2JI2C Master\015\012\012"
RSEG DATA16_C:CONST:SORT:NOROOT(0)
`?<Constant "\\r\\nIR Data:">`:
DC8 "\015\012IR Data:"
RSEG DATA16_C:CONST:SORT:NOROOT(0)
`?<Constant "\\r\\nGet Port Pin State">`:
DC8 "\015\012Get Port Pin State"
RSEG DATA16_C:CONST:SORT:NOROOT(0)
`?<Constant "\\r\\nGet Last IR Value">`:
DC8 "\015\012Get Last IR Value"
RSEG DATA16_C:CONST:SORT:NOROOT(0)
`?<Constant "\\r\\nGet IR Data">`:
DC8 "\015\012Get IR Data"
RSEG DATA16_C:CONST:SORT:NOROOT(0)
`?<Constant "...done.">`:
DC8 "...done."
RSEG DATA16_C:CONST:SORT:NOROOT(0)
`?<Constant "\\r\\nSet RTC Parameters">`:
DC8 "\015\012Set RTC Parameters"
RSEG DATA16_C:CONST:SORT:NOROOT(0)
`?<Constant "\\r\\nRTC Parameters:">`:
DC8 "\015\012RTC Parameters:"
RSEG DATA16_C:CONST:SORT:NOROOT(0)
`?<Constant "\\r\\nGet RTC Parameters">`:
DC8 "\015\012Get RTC Parameters"
RSEG DATA16_C:CONST:SORT:NOROOT(0)
`?<Constant "\\r\\nInt - Get IR Data">`:
DC8 "\015\012Int - Get IR Data"
ASEGN DATA16_AN:DATA:NOROOT,076H
// union <unnamed> __data16 _A_U0RXBUF
_A_U0RXBUF:
DS8 2
END
//
// 1 736 bytes in segment CODE
// 49 bytes in segment DATA16_AN
// 276 bytes in segment DATA16_C
// 71 bytes in segment DATA16_Z
// 10 bytes in segment INTVEC
//
// 1 736 bytes of CODE memory
// 276 bytes of CONST memory (+ 10 bytes shared)
// 71 bytes of DATA memory (+ 49 bytes shared)
//
//Errors: none
//Warnings: none
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -