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

📄 mac_general.s51

📁 zigbee location examples
💻 S51
📖 第 1 页 / 共 2 页
字号:
//   33 //-------------------------------------------------------------------------------------------------------
//   34 // MAC Internal data

        RSEG XDATA_Z:XDATA:NOROOT(0)
        REQUIRE __INIT_XDATA_Z
//   35 MAC_INFO macInfo;
macInfo:
        DS 7

        RSEG XDATA_Z:XDATA:NOROOT(0)
        REQUIRE __INIT_XDATA_Z
//   36 BYTE     intMacFlags;
intMacFlags:
        DS 1
//   37 //-------------------------------------------------------------------------------------------------------
//   38 
//   39 
//   40 
//   41 
//   42 //-------------------------------------------------------------------------------------------------------
//   43 //  BOOL macSetState(MAC_STATE_TYPE newState)
//   44 //
//   45 //  DESCRIPTION:
//   46 //      Changes the internal MAC state, which is used to control polling and scanning. Only specific
//   47 //      sequences of transitions are allowed.
//   48 //
//   49 //  ARGUMENTS:
//   50 //      MAC_STATE_TYPE newState
//   51 //          The new MAC state
//   52 //
//   53 //  RETURN VALUE:
//   54 //      BOOL
//   55 //          TRUE if successful (legal transition to newState)
//   56 //          FALSE otherwise (the state was not changed)
//   57 //-------------------------------------------------------------------------------------------------------

        RSEG NEAR_CODE:CODE:NOROOT(0)
//   58 ROOT BOOL macSetState(MAC_STATE_TYPE newState) {
macSetState:
        CFI Block cfiBlock0 Using cfiCommon0
        CFI Function macSetState
        PUSH	DPL
        CFI DPL0 Frame(CFA_SP, 3)
        CFI CFA_SP SP+-3
        PUSH	DPH
        CFI DPH0 Frame(CFA_SP, 4)
        CFI CFA_SP SP+-4
        ; Saved register size: 2
        ; Auto size: 0
        MOV	A,R1
        MOV	R2,A
//   59     BOOL result;
//   60 
//   61     DISABLE_GLOBAL_INT();
        CLR	0xa8.7
//   62     switch (newState) {
        LCALL	?UC_SWITCH_SPARSE
`?<Jumptable for macSetState>_0`:
        DB        2
        DB        16
        DB        17
        DW        ??macSetState_0
        DB        64
        DB        65
        DW        ??macSetState_0
        DB        10
        DB        0
        DW        ??macSetState_1
        DB        18
        DW        ??macSetState_2
        DB        32
        DW        ??macSetState_3
        DB        33
        DW        ??macSetState_4
        DB        34
        DW        ??macSetState_5
        DB        66
        DW        ??macSetState_6
        DB        67
        DW        ??macSetState_0
        DB        68
        DW        ??macSetState_7
        DB        128
        DW        ??macSetState_0
        DB        129
        DW        ??macSetState_8
        DW        ??macSetState_9
//   63 
//   64     // Association
//   65     case MAC_STATE_TX_ASSOC_REQUEST:         result = (BYTE)((macInfo.state == MAC_STATE_DEFAULT)); break;
??macSetState_0:
        MOV	DPTR,#macInfo
        MOVX	A,@DPTR
        JNZ	??macSetState_9
??macSetState_1:
        MOV	R1,#0x1
//   66     case MAC_STATE_ASSOC_REQUEST_SENT:       result = (BYTE)((macInfo.state == MAC_STATE_TX_ASSOC_REQUEST)); break;
//   67     case MAC_STATE_TX_ASSOC_DATA_REQUEST:    result = (BYTE)((macInfo.state == MAC_STATE_ASSOC_REQUEST_SENT)); break;
//   68     case MAC_STATE_ASSOC_DATA_REQUEST_SENT:  result = (BYTE)((macInfo.state == MAC_STATE_TX_ASSOC_DATA_REQUEST)); break;
//   69 
//   70     // Internally generated data request (mpib.macAutoRequest)
//   71     case MAC_STATE_TX_AUTO_DATA_REQUEST:     result = (BYTE)((macInfo.state == MAC_STATE_DEFAULT)); break;
//   72     case MAC_STATE_AUTO_DATA_REQUEST_SENT:   result = (BYTE)((macInfo.state == MAC_STATE_TX_AUTO_DATA_REQUEST)); break;
//   73 
//   74     // Manually generated data request (mlmePollRequest)
//   75     case MAC_STATE_TX_MANUAL_DATA_REQUEST:   result = (BYTE)((macInfo.state == MAC_STATE_DEFAULT)); break;
//   76     case MAC_STATE_MANUAL_DATA_REQUEST_SENT: result = (BYTE)((macInfo.state == MAC_STATE_TX_MANUAL_DATA_REQUEST)); break;
//   77 
//   78     // Channel scanning
//   79     case MAC_STATE_ENERGY_SCAN:              result = (BYTE)((macInfo.state == MAC_STATE_DEFAULT)); break;
//   80     case MAC_STATE_ACTIVE_OR_PASSIVE_SCAN:   result = (BYTE)((macInfo.state == MAC_STATE_DEFAULT)); break;
//   81     case MAC_STATE_SCAN_RESULT_BUFFER_FULL:  result = (BYTE)((macInfo.state == MAC_STATE_ACTIVE_OR_PASSIVE_SCAN)); break;
//   82     case MAC_STATE_ORPHAN_SCAN:              result = (BYTE)((macInfo.state == MAC_STATE_DEFAULT)); break;
//   83     case MAC_STATE_ORPHAN_REALIGNED:         result = (BYTE)((macInfo.state == MAC_STATE_ORPHAN_SCAN)); break;
//   84 
//   85     // Always possible to return to the default state
//   86     case MAC_STATE_DEFAULT:                  result = TRUE; break;
//   87     default:                                 result = FALSE; break;
//   88     }
//   89     if (result) macInfo.state = newState;
        MOV	A,R2
        MOV	DPTR,#macInfo
        MOVX	@DPTR,A
//   90     ENABLE_GLOBAL_INT();
??macSetState_10:
        SETB	0xa8.7
//   91     return result;
        POP	DPH
        CFI DPH0 SameValue
        CFI CFA_SP SP+-3
        POP	DPL
        CFI DPL0 SameValue
        CFI CFA_SP SP+-2
        RET
        CFI DPL0 Frame(CFA_SP, 3)
        CFI DPH0 Frame(CFA_SP, 4)
        CFI CFA_SP SP+-4
??macSetState_8:
        MOV	DPTR,#macInfo
        MOVX	A,@DPTR
        XRL	A,#0x80
        JZ	??macSetState_1
??macSetState_9:
        MOV	R1,#0x0
        SJMP	??macSetState_10
??macSetState_2:
        MOV	DPTR,#macInfo
        MOVX	A,@DPTR
        XRL	A,#0x81
??macSetState_11:
        JNZ	??macSetState_9
        SJMP	??macSetState_1
??macSetState_5:
        MOV	DPTR,#macInfo
        MOVX	A,@DPTR
        XRL	A,#0x12
        SJMP	??macSetState_11
??macSetState_3:
        MOV	DPTR,#macInfo
        MOVX	A,@DPTR
        XRL	A,#0x10
        SJMP	??macSetState_11
??macSetState_4:
        MOV	DPTR,#macInfo
        MOVX	A,@DPTR
        XRL	A,#0x11
        SJMP	??macSetState_11
??macSetState_6:
        MOV	DPTR,#macInfo
        MOVX	A,@DPTR
        XRL	A,#0x41
        SJMP	??macSetState_11
??macSetState_7:
        MOV	DPTR,#macInfo
        MOVX	A,@DPTR
        XRL	A,#0x43
        SJMP	??macSetState_11
        CFI EndBlock cfiBlock0
//   92 
//   93 } // macSetState

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

        END
//   94 
// 
// 135 bytes in segment NEAR_CODE
//   1 byte  in segment SFR_AN
//  49 bytes in segment XDATA_Z
// 
// 135 bytes of CODE  memory
//   0 bytes of DATA  memory (+ 1 byte shared)
//  49 bytes of XDATA memory
//
//Errors: none
//Warnings: none

⌨️ 快捷键说明

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