⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mac_power_management.s51

📁 zigbee location examples
💻 S51
📖 第 1 页 / 共 5 页
字号:
        MOV	DPTR,#mbcnInfo
        MOVX	@DPTR,A
//  440            mbcnInfo.pTxPacket = NULL;
        MOV	DPTR,#(mbcnInfo + 2)
        CLR	A
        MOVX	@DPTR,A
        INC	DPTR
        MOVX	@DPTR,A
//  441            mscInfo.scanStatus = MSC_STATUS_FINISHED;
        MOV	A,#0x1
        MOV	DPTR,#(mscInfo + 10)
        MOVX	@DPTR,A
//  442            break;
//  443     }
//  444 
//  445     // Reset flags
//  446     RESET_MF();
??mpmResumeMacAfterPowerDown_0:
        CLR	A
        MOV	DPTR,#(macInfo + 6)
        MOVX	@DPTR,A
//  447 
//  448     // MAC command state
//  449     macInfo.state = MAC_STATE_DEFAULT;
        MOV	DPTR,#macInfo
        MOVX	@DPTR,A
//  450 
//  451     // Flush the RX FIFO twice (chip bug)
//  452     ISFLUSHRX;
        MOV	0xe1,#-0x1a
//  453     ISFLUSHRX;
        MOV	0xe1,#-0x1a
//  454     ISFLUSHTX;
        MOV	0xe1,#-0x19
//  455     ISFLUSHTX;
        MOV	0xe1,#-0x19
//  456 
//  457     // Resume coordinator
//  458     #pragma diag_suppress=PA082
//  459     mdmctrl0 = READ_RFR16(MDMCTRL0);
        MOV	DPTR,#-0x20fe
        MOVX	A,@DPTR
        MOV	R1,A
        MOV	DPTR,#-0x20fd
        MOVX	A,@DPTR
        ADD	A,#0x0
        CLR	A
        ADDC	A,R1
        MOV	R1,A
//  460     #pragma diag_default=PA082
//  461     if (mdmctrl0 & PAN_COORDINATOR_BM)
        MOV	A,#0x10
        ANL	A,R1
        MOV	R1,A
        CLR	A
        JNZ	??mpmResumeMacAfterPowerDown_7
        MOV	A,R1
??mpmResumeMacAfterPowerDown_7:
        MOV	DPTR,#(mpib + 8)
        JZ	??mpmResumeMacAfterPowerDown_8
//  462         ResumeCoordinatorAfterPowerDown (resumeMode, synchronousStart);
        MOVX	A,@DPTR
        XRL	A,#0xf
        JNZ	??mpmResumeMacAfterPowerDown_9
        ; Setup parameters for call to function mtimSetCallback
        MOV	DPTR,#__Constant_30
        LCALL	?PUSH_XSTACK8_X_FOUR
        CFI CFA_XSP16 add(XSP16, 14)
        MOV	R1,#(mbcnExpirePacketsNonBeacon & 0xff)
        MOV	R2,#((mbcnExpirePacketsNonBeacon >> 8) & 0xff)
        MOV	R3,#((mbcnExpirePacketsNonBeacon >> 16) & 0xff)
        LCALL	mtimSetCallback
        MOV	A,#0x4
        LCALL	?DEALLOC_XSTACK8
        CFI CFA_XSP16 add(XSP16, 10)
        SJMP	??mpmResumeMacAfterPowerDown_9
//  463     else
//  464         ResumeDeviceAfterPowerDown (resumeMode, synchronousStart);
??mpmResumeMacAfterPowerDown_8:
        MOVX	A,@DPTR
        MOV	R2,A
        MOV	A,#0xf
        XRL	A,R2
        JZ	??mpmResumeMacAfterPowerDown_9
        MOV	A,?V0 + 0
        JNZ	??mpmResumeMacAfterPowerDown_9
        MOV	A,R7
        LCALL	?UC_SWITCH_DENSE
`?<Jumptable for mpmResumeMacAfterPowerDown>_1`:
        DB        0
        DB        1
        DW        ??mpmResumeMacAfterPowerDown_9
        DW        ??mpmResumeMacAfterPowerDown_10
        DW        ??mpmResumeMacAfterPowerDown_10
??mpmResumeMacAfterPowerDown_10:
        MOV	A,#0x1
        LCALL	?XSTACK_DISP0_8
        MOV	A,R2
        MOVX	@DPTR,A
        CLR	A
        MOV	DPTR,#(mpib + 8)
        MOVX	@DPTR,A
        ; Setup parameters for call to function mlmeSetRequest
        MOV	A,#0x1
        LCALL	?XSTACK_DISP0_8
        MOV	R2,DPL
        MOV	R3,DPH
        MOV	R1,#0x47
        LCALL	mlmeSetRequest
        ; Setup parameters for call to function mlmeSyncRequest
        MOV	R2,#0x1
        MOV	DPTR,#ppib
        MOVX	A,@DPTR
        MOV	R1,A
        LCALL	mlmeSyncRequest
//  465 
//  466     // Turn the interrupts back on
//  467     EnableRfInterrupts ();
??mpmResumeMacAfterPowerDown_9:
        ; Setup parameters for call to function EnableRfInterrupts
        LCALL	EnableRfInterrupts
//  468     ENABLE_TIMER2_INT();
        SETB	0xb8.2
//  469     ENABLE_GLOBAL_INT();
        SETB	0xa8.7
//  470 
//  471     // Turn on receiver
//  472     if (rxOnWhenIdle == TRUE)
        MOV	A,#0x1
        XRL	A,R6
        JNZ	??mpmResumeMacAfterPowerDown_11
//  473     {
//  474         setAttributeValue = TRUE;
        MOV	A,#0x1
        MOV	DPL,?XSP + 0
        MOV	DPH,?XSP + 1
        MOVX	@DPTR,A
//  475         mlmeSetRequest(MAC_RX_ON_WHEN_IDLE, &setAttributeValue);
        ; Setup parameters for call to function mlmeSetRequest
        MOV	R2,DPL
        MOV	R3,DPH
        MOV	R1,#0x52
        LCALL	mlmeSetRequest
//  476     }
//  477 
//  478 }
??mpmResumeMacAfterPowerDown_11:
        MOV	A,#0x2
        LJMP	?Subroutine1
        CFI EndBlock cfiBlock12

        RSEG NEAR_CODE:CODE:NOROOT(0)
mpmSetTask:
        CFI Block cfiBlock13 Using cfiCommon1
        CFI Function mpmSetTask
        FUNCALL mpmSetTask, mschRemoveTask
        LOCFRAME XSTACK, 9, STACK
        ARGFRAME XSTACK, 9, STACK
        FUNCALL mpmSetTask, mpmSetConfirm
        LOCFRAME XSTACK, 9, STACK
        ARGFRAME XSTACK, 9, STACK
        FUNCALL mpmSetTask, mschRescheduleTask
        LOCFRAME XSTACK, 9, STACK
        ARGFRAME XSTACK, 9, STACK
        FUNCALL mpmSetTask, mpmTurnOnVregAndReset
        LOCFRAME XSTACK, 9, STACK
        ARGFRAME XSTACK, 9, STACK
        FUNCALL mpmSetTask, mpmTurnOnXosc
        LOCFRAME XSTACK, 9, STACK
        ARGFRAME XSTACK, 9, STACK
        FUNCALL mpmSetTask, mpmTurnOffXosc
        LOCFRAME XSTACK, 9, STACK
        ARGFRAME XSTACK, 9, STACK
        FUNCALL mpmSetTask, mpmTurnOffVreg
        LOCFRAME XSTACK, 9, STACK
        ARGFRAME XSTACK, 9, STACK
        FUNCALL mpmSetTask, mschRemoveTask
        LOCFRAME XSTACK, 9, STACK
        ARGFRAME XSTACK, 9, STACK
        FUNCALL mpmSetTask, mpmSetConfirm
        LOCFRAME XSTACK, 9, STACK
        ARGFRAME XSTACK, 9, STACK
        MOV	A,#-0x9
        LCALL	?BANKED_ENTER_XDATA
        CFI DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1)))
        CFI DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2)))
        CFI ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3)))
        CFI ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4)))
        CFI ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5)))
        CFI R7 load(1, XDATA, add(CFA_XSP16, literal(-6)))
        CFI V0 load(1, XDATA, add(CFA_XSP16, literal(-7)))
        CFI VB load(1, XDATA, add(CFA_XSP16, literal(-8)))
        CFI R6 load(1, XDATA, add(CFA_XSP16, literal(-9)))
        CFI CFA_SP SP+0
        CFI CFA_XSP16 add(XSP16, 9)
        ; Saved register size: 9
        ; Auto size: 0
        MOV	A,R2
        ADD	A,#0x8
        MOV	R6,A
        MOV	A,R3
        ADDC	A,#0x0
        MOV	R7,A
        MOV	DPTR,#(mpib + 8)
        MOVX	A,@DPTR
        XRL	A,#0xf
        JNZ	??mpmSetTask_0
        MOV	DPTR,#(mpib + 31)
        MOVX	A,@DPTR
        JZ	??mpmSetTask_0
        ; Setup parameters for call to function mschRemoveTask
        MOV	R2,#0x0
        MOV	DPL,R6
        MOV	DPH,R7
        MOVX	A,@DPTR
        MOV	R1,A
        LCALL	mschRemoveTask & 0xFFFF
        ; Setup parameters for call to function mpmSetConfirm
        MOV	R1,#0x2
        SJMP	??mpmSetTask_1
??mpmSetTask_0:
        MOV	DPTR,#macInfo
        MOVX	A,@DPTR
        JZ	??mpmSetTask_2
        ; Setup parameters for call to function mschRescheduleTask
        MOV	R1,#0x0
        LCALL	mschRescheduleTask & 0xFFFF
        SJMP	??mpmSetTask_3
??mpmSetTask_2:
        MOV	DPL,R2
        MOV	DPH,R3
        INC	DPTR
        INC	DPTR
        INC	DPTR
        MOVX	A,@DPTR
        MOV	DPTR,#(mpmInfo + 1)
        MOVX	@DPTR,A
        LCALL	?UC_SWITCH_DENSE
`?<Jumptable for mpmSetTask>_0`:
        DB        0
        DB        2
        DW        ??mpmSetTask_4
        DW        ??mpmSetTask_5
        DW        ??mpmSetTask_6
        DW        ??mpmSetTask_7
??mpmSetTask_5:
        MOV	DPTR,#mpmInfo
        MOVX	A,@DPTR
        XRL	A,#0x2
        JNZ	??mpmSetTask_8
        ; Setup parameters for call to function mpmTurnOnVregAndReset
        LCALL	mpmTurnOnVregAndReset & 0xFFFF
??mpmSetTask_8:
        MOVX	A,@DPTR
        JZ	??mpmSetTask_9
        ; Setup parameters for call to function mpmTurnOnXosc
        LCALL	mpmTurnOnXosc & 0xFFFF
??mpmSetTask_9:
        CLR	A
        MOV	DPTR,#(mrxInfo + 15)
        MOVX	@DPTR,A
        SJMP	??mpmSetTask_4
??mpmSetTask_6:
        ANL	0xc3,#0xfe
        MOV	A,#0x1
        MOV	DPTR,#(mrxInfo + 15)
        MOVX	@DPTR,A
        ; Setup parameters for call to function mpmTurnOffXosc
        LCALL	mpmTurnOffXosc & 0xFFFF
        SJMP	??mpmSetTask_4
??mpmSetTask_7:
        ANL	0xc3,#0xfe
        MOV	A,#0x1
        MOV	DPTR,#(mrxInfo + 15)
        MOVX	@DPTR,A
        ; Setup parameters for call to function mpmTurnOffVreg
        LCALL	mpmTurnOffVreg & 0xFFFF
??mpmSetTask_4:
        MOV	DPTR,#(mpmInfo + 1)
        MOVX	A,@DPTR
        MOV	DPTR,#mpmInfo
        MOVX	@DPTR,A
        ; Setup parameters for call to function mschRemoveTask
        MOV	R2,#0x0
        MOV	DPL,R6
        MOV	DPH,R7
        MOVX	A,@DPTR
        MOV	R1,A
        LCALL	mschRemoveTask & 0xFFFF
        ; Setup parameters for call to function mpmSetConfirm
        MOV	R1,#0x0
??mpmSetTask_1:
        LCALL	mpmSetConfirm & 0xFFFF
??mpmSetTask_3:
        MOV	R7,#0x1
        LJMP	?BANKED_LEAVE_XDATA
        CFI EndBlock cfiBlock13

        RSEG XDATA_I:XDATA:NOROOT(0)
__Constant_30:
        DS 4
        REQUIRE `?<Initializer for __Constant_30>`
        REQUIRE __INIT_XDATA_I

        RSEG XDATA_ID:CODE:NOROOT(0)
`?<Initializer for __Constant_30>`:
        DD 48

        ASEGN SFR_AN:DATA:NOROOT,0a8H
// union <unnamed> volatile __sfr _A_IEN0
_A_IEN0:
        DS 1

        ASEGN SFR_AN:DATA:NOROOT,0b8H
// union <unnamed> volatile __sfr _A_IEN1
_A_IEN1:
        DS 1

        END
//  479 
//  480 
//  481 //-------------------------------------------------------------------------------------------------------
//  482 //  static void ResumeCoordinatorAfterPowerDown (RESUME_MODE  resumeMode)
//  483 //                                         BOOL        synchronousStart)
//  484 //
//  485 //  DESCRIPTION:
//  486 //      Resumes the coordinator after a power down
//  487 //
//  488 //-------------------------------------------------------------------------------------------------------
//  489 static void ResumeCoordinatorAfterPowerDown (RESUME_MODE  resumeMode, BOOL synchronousStart)
//  490 {
//  491     if (mpib.macBeaconOrder == 15)
//  492         mtimSetCallback(mbcnExpirePacketsNonBeacon, (UINT32)(aBaseSuperframeDuration / aUnitBackoffPeriod));
//  493 }
//  494 
//  495 //-------------------------------------------------------------------------------------------------------
//  496 // static void ResumeDeviceAfterPowerDown (RESUME_MODE resumeMode,
//  497 //                                         BOOL        synchronousStart)
//  498 //
//  499 //  DESCRIPTION:
//  500 //      Resumes a device after a power down
//  501 //
//  502 //----------------

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -