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

📄 mac_radio.s51

📁 CC2431无线定位程序非常有参考价值
💻 S51
📖 第 1 页 / 共 4 页
字号:
//   65  * ------------------------------------------------------------------------------------------------
//   66  */

        RSEG XDATA_Z:XDATA:NOROOT(0)
        REQUIRE __INIT_XDATA_Z
//   67 static uint8 reqChannel;
??reqChannel:
        DS 1

        RSEG XDATA_Z:XDATA:NOROOT(0)
        REQUIRE __INIT_XDATA_Z
//   68 static uint8 reqTxPower;
??reqTxPower:
        DS 1
//   69 
//   70 
//   71 /* ------------------------------------------------------------------------------------------------
//   72  *                                        Local Functions
//   73  * ------------------------------------------------------------------------------------------------
//   74  */
//   75 static uint8 radioComputeED(int8 rssiDbm);
//   76 
//   77 
//   78 /**************************************************************************************************
//   79  * @fn          macRadioInit
//   80  *
//   81  * @brief       Initialize radio software.
//   82  *
//   83  * @param       none
//   84  *
//   85  * @return      none
//   86  **************************************************************************************************
//   87  */

        RSEG BANKED_CODE:CODE:NOROOT(0)
//   88 void macRadioInit(void)
macRadioInit:
        CFI Block cfiBlock0 Using cfiCommon0
        CFI Function macRadioInit
//   89 {
        PUSH	DPL
        CFI DPL0 Frame(CFA_SP, 4)
        CFI CFA_SP SP+-4
        PUSH	DPH
        CFI DPH0 Frame(CFA_SP, 5)
        CFI CFA_SP SP+-5
        ; Saved register size: 2
        ; Auto size: 0
//   90   /* variable initialization for this module */
//   91   reqChannel    = MAC_RADIO_CHANNEL_DEFAULT;
        MOV	A,#0xb
        MOV	DPTR,#??reqChannel
        MOVX	@DPTR,A
//   92   macPhyChannel = MAC_RADIO_CHANNEL_DEFAULT;
        MOV	DPTR,#macPhyChannel
        MOVX	@DPTR,A
//   93   reqTxPower    = MAC_RADIO_TX_POWER_DEFAULT;
        MOV	A,#0x1f
        MOV	DPTR,#??reqTxPower
        MOVX	@DPTR,A
//   94   macPhyTxPower = MAC_RADIO_TX_POWER_DEFAULT;
        MOV	DPTR,#macPhyTxPower
        SJMP	??Subroutine2_0
        CFI EndBlock cfiBlock0
//   95 }

        RSEG BANKED_CODE:CODE:NOROOT(0)
?Subroutine2:
        CFI Block cfiBlock1 Using cfiCommon0
        CFI NoFunction
        CFI CFA_SP SP+-5
        CFI DPL0 Frame(CFA_SP, 4)
        CFI DPH0 Frame(CFA_SP, 5)
        MOV	DPTR,#-0x20b5
??Subroutine2_0:
        MOVX	@DPTR,A
        SJMP	??Subroutine0_1
        CFI EndBlock cfiBlock1

        RSEG BANKED_CODE:CODE:NOROOT(0)
?Subroutine0:
        CFI Block cfiBlock2 Using cfiCommon0
        CFI NoFunction
        CFI CFA_SP SP+-5
        CFI DPL0 Frame(CFA_SP, 4)
        CFI DPH0 Frame(CFA_SP, 5)
        MOV	DPTR,#(??radioComputeED & 0xffff)
        MOV	A,#((??radioComputeED >> 16) & 0xff)
??Subroutine0_0:
        LCALL	?BCALL               ; Banked call to: DPTR()
??Subroutine0_1:
        POP	DPH
        CFI CFA_SP SP+-4
        CFI DPH0 SameValue
        POP	DPL
        CFI CFA_SP SP+-3
        CFI DPL0 SameValue
        LJMP	?BRET
        CFI EndBlock cfiBlock2
//   96 
//   97 
//   98 /**************************************************************************************************
//   99  * @fn          macRadioReset
//  100  *
//  101  * @brief       Resets the radio module.
//  102  *
//  103  * @param       none
//  104  *
//  105  * @return      none
//  106  **************************************************************************************************
//  107  */

        RSEG BANKED_CODE:CODE:NOROOT(0)
//  108 void macRadioReset(void)
macRadioReset:
        CFI Block cfiBlock3 Using cfiCommon0
        CFI Function macRadioReset
//  109 {
        FUNCALL macRadioReset, macRadioStopScan
        LOCFRAME ISTACK, 2, STACK
        ARGFRAME ISTACK, 2, STACK
        FUNCALL macRadioReset, macRadioEnergyDetectStop
        LOCFRAME ISTACK, 2, STACK
        ARGFRAME ISTACK, 2, STACK
        PUSH	DPL
        CFI DPL0 Frame(CFA_SP, 4)
        CFI CFA_SP SP+-4
        PUSH	DPH
        CFI DPH0 Frame(CFA_SP, 5)
        CFI CFA_SP SP+-5
        ; Saved register size: 2
        ; Auto size: 0
//  110   macRadioStopScan();
        ; Setup parameters for call to function macRadioStopScan
        MOV	DPTR,#(macRadioStopScan & 0xffff)
        MOV	A,#((macRadioStopScan >> 16) & 0xff)
        LCALL	?BCALL               ; Banked call to: DPTR()
//  111   macRadioEnergyDetectStop();
        ; Setup parameters for call to function macRadioEnergyDetectStop
        MOV	DPTR,#(macRadioEnergyDetectStop & 0xffff)
        MOV	A,#((macRadioEnergyDetectStop >> 16) & 0xff)
        SJMP	??Subroutine0_0
        CFI EndBlock cfiBlock3
//  112 }
//  113 
//  114 
//  115 /**************************************************************************************************
//  116  * @fn          macRadioRandomByte
//  117  *
//  118  * @brief       Return a random byte derived from previously set random seed.
//  119  *
//  120  * @param       none
//  121  *
//  122  * @return      a random byte
//  123  **************************************************************************************************
//  124  */

        RSEG BANKED_CODE:CODE:NOROOT(0)
//  125 uint8 macRadioRandomByte(void)
macRadioRandomByte:
        CFI Block cfiBlock4 Using cfiCommon0
        CFI Function macRadioRandomByte
//  126 {
        FUNCALL macRadioRandomByte, macMcuRandomByte
        LOCFRAME ISTACK, 2, STACK
        ARGFRAME ISTACK, 2, STACK
        PUSH	DPL
        CFI DPL0 Frame(CFA_SP, 4)
        CFI CFA_SP SP+-4
        PUSH	DPH
        CFI DPH0 Frame(CFA_SP, 5)
        CFI CFA_SP SP+-5
        ; Saved register size: 2
        ; Auto size: 0
//  127   return(MAC_RADIO_RANDOM_BYTE());
        ; Setup parameters for call to function macMcuRandomByte
        MOV	DPTR,#(macMcuRandomByte & 0xffff)
        MOV	A,#((macMcuRandomByte >> 16) & 0xff)
        SJMP	??Subroutine0_0
        CFI EndBlock cfiBlock4
//  128 }
//  129 
//  130 
//  131 /**************************************************************************************************
//  132  * @fn          macRadioSetPanCoordinator
//  133  *
//  134  * @brief       Configure the pan coordinator status of the radio
//  135  *
//  136  * @param       panCoordFlag - non-zero to configure radio to be pan coordinator
//  137  *                             zero to configure radio as NON pan coordinator
//  138  *
//  139  * @return      none
//  140  **************************************************************************************************
//  141  */

        RSEG BANKED_CODE:CODE:NOROOT(0)
//  142 void macRadioSetPanCoordinator(uint8 panCoordFlag)
macRadioSetPanCoordinator:
        CFI Block cfiBlock5 Using cfiCommon0
        CFI Function macRadioSetPanCoordinator
//  143 {
        PUSH	DPL
        CFI DPL0 Frame(CFA_SP, 4)
        CFI CFA_SP SP+-4
        PUSH	DPH
        CFI DPH0 Frame(CFA_SP, 5)
        CFI CFA_SP SP+-5
        ; Saved register size: 2
        ; Auto size: 0
//  144   /* abstracted radio configuration */
//  145   MAC_RADIO_SET_PAN_COORDINATOR(panCoordFlag);
        MOV	DPTR,#-0x20fe
        MOVX	A,@DPTR
        MOV	R2,A
        MOV	A,R1
        JZ	??macRadioSetPanCoordinator_0
        SETB	B.0
        SJMP	??macRadioSetPanCoordinator_1
??macRadioSetPanCoordinator_0:
        CLR	B.0
??macRadioSetPanCoordinator_1:
        MOV	C,B.0
        CLR	A
        MOV	0xE0 /* A   */.0,C
        SWAP	A
        PUSH	A
        CFI CFA_SP SP+-6
        MOV	A,#-0x11
        ANL	A,R2
        MOV	R2,A
        POP	A
        CFI CFA_SP SP+-5
        ORL	A,R2
        SJMP	??Subroutine2_0
        CFI EndBlock cfiBlock5
//  146 }
//  147 
//  148 
//  149 /**************************************************************************************************
//  150  * @fn          macRadioSetPanID
//  151  *
//  152  * @brief       Set the pan ID on the radio.
//  153  *
//  154  * @param       panID - 16 bit PAN identifier
//  155  *
//  156  * @return      none
//  157  **************************************************************************************************
//  158  */

        RSEG BANKED_CODE:CODE:NOROOT(0)
//  159 void macRadioSetPanID(uint16 panID)
macRadioSetPanID:
        CFI Block cfiBlock6 Using cfiCommon0
        CFI Function macRadioSetPanID
//  160 {
        PUSH	DPL
        CFI DPL0 Frame(CFA_SP, 4)
        CFI CFA_SP SP+-4
        PUSH	DPH
        CFI DPH0 Frame(CFA_SP, 5)
        CFI CFA_SP SP+-5
        ; Saved register size: 2
        ; Auto size: 0
//  161   /* abstracted radio configuration */
//  162   MAC_RADIO_SET_PAN_ID(panID);
        MOV	A,R2
        MOV	DPTR,#-0x20b4
        MOVX	@DPTR,A
        MOV	A,R3
        SJMP	?Subroutine2
        CFI EndBlock cfiBlock6
//  163 }
//  164 
//  165 
//  166 /**************************************************************************************************
//  167  * @fn          macRadioSetShortAddr
//  168  *
//  169  * @brief       Set the short addrss on the radio.
//  170  *
//  171  * @param       shortAddr - 16 bit short address
//  172  *
//  173  * @return      none
//  174  **************************************************************************************************
//  175  */

        RSEG BANKED_CODE:CODE:NOROOT(0)
//  176 void macRadioSetShortAddr(uint16 shortAddr)
macRadioSetShortAddr:
        CFI Block cfiBlock7 Using cfiCommon0
        CFI Function macRadioSetShortAddr
//  177 {
        PUSH	DPL
        CFI DPL0 Frame(CFA_SP, 4)
        CFI CFA_SP SP+-4
        PUSH	DPH
        CFI DPH0 Frame(CFA_SP, 5)
        CFI CFA_SP SP+-5
        ; Saved register size: 2
        ; Auto size: 0
//  178   /* abstracted radio configuration */
//  179   MAC_RADIO_SET_SHORT_ADDR(shortAddr);
        MOV	A,R2
        MOV	DPTR,#-0x20b2
        MOVX	@DPTR,A
        MOV	A,R3
        MOV	DPTR,#-0x20b3
        SJMP	??Subroutine2_0
        CFI EndBlock cfiBlock7
//  180 }
//  181 
//  182 
//  183 /**************************************************************************************************
//  184  * @fn          macRadioSetIEEEAddr
//  185  *
//  186  * @brief       Set the IEEE address on the radio.
//  187  *
//  188  * @param       pIEEEAddr - pointer to array holding 64 bit IEEE address; array must be little
//  189  *                          endian format (starts with lowest signficant byte)
//  190  *
//  191  * @return      none
//  192  **************************************************************************************************
//  193  */

        RSEG BANKED_CODE:CODE:NOROOT(0)
//  194 void macRadioSetIEEEAddr(uint8 * pIEEEAddr)
macRadioSetIEEEAddr:
        CFI Block cfiBlock8 Using cfiCommon0
        CFI Function macRadioSetIEEEAddr
//  195 {
        FUNCALL macRadioSetIEEEAddr, macMemWriteRam
        LOCFRAME ISTACK, 2, STACK
        ARGFRAME ISTACK, 2, STACK
        PUSH	DPL
        CFI DPL0 Frame(CFA_SP, 4)
        CFI CFA_SP SP+-4
        PUSH	DPH
        CFI DPH0 Frame(CFA_SP, 5)
        CFI CFA_SP SP+-5
        ; Saved register size: 2
        ; Auto size: 0
        MOV	A,R2
        MOV	R4,A
        MOV	A,R3
        MOV	R5,A
//  196   /* abstracted radio configuration */
//  197   MAC_RADIO_SET_IEEE_ADDR(pIEEEAddr);
        ; Setup parameters for call to function macMemWriteRam
        MOV	R1,#0x8
        MOV	R2,#0x43
        MOV	R3,#-0x21
        MOV	DPTR,#(macMemWriteRam & 0xffff)
        MOV	A,#((macMemWriteRam >> 16) & 0xff)
        SJMP	??Subroutine0_0
        CFI EndBlock cfiBlock8
//  198 }
//  199 
//  200 
//  201 /**************************************************************************************************
//  202  * @fn          macRadioSetTxPower
//  203  *
//  204  * @brief       Set transmitter power of the radio.
//  205  *
//  206  * @param       txPower - the minus dBm for power but as a postive integer (or if configured
//  207  *                        for it, txPower is the raw register value).
//  208  *
//  209  * @return      none
//  210  **************************************************************************************************
//  211  */
//  212 #ifndef HAL_MAC_USE_REGISTER_POWER_VALUES
//  213 /* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
//  214 

        RSEG BANKED_CODE:CODE:NOROOT(0)
//  215 void macRadioSetTxPower(uint8 txPower)
macRadioSetTxPower:
        CFI Block cfiBlock9 Using cfiCommon0
        CFI Function macRadioSetTxPower
//  216 {
        FUNCALL macRadioSetTxPower, macRadioUpdateTxPower
        LOCFRAME XSTACK, 10, STACK
        ARGFRAME XSTACK, 10, STACK
        MOV	A,#-0xa
        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 V1 load(1, XDATA, add(CFA_XSP16, literal(-7)))
        CFI V0 load(1, XDATA, add(CFA_XSP16, literal(-8)))
        CFI VB load(1, XDATA, add(CFA_XSP16, literal(-9)))
        CFI R6 load(1, XDATA, add(CFA_XSP16, literal(-10)))
        CFI CFA_SP SP+0
        CFI CFA_XSP16 add(XSP16, 10)

⌨️ 快捷键说明

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