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

📄 mac_radio.lst

📁 CC2431无线定位程序非常有参考价值
💻 LST
📖 第 1 页 / 共 5 页
字号:
    339           * @brief       Update the radio channel if a new channel has been requested.
    340           *
    341           * @param       none
    342           *
    343           * @return      none
    344           **************************************************************************************************
    345           */

   \                                 In segment BANKED_CODE, align 1, keep-with-next
    346          void macRadioUpdateChannel(void)
   \                     macRadioUpdateChannel:
    347          {
   \   000000   C082         PUSH    DPL
   \   000002   C083         PUSH    DPH
   \   000004                ; Saved register size: 2
   \   000004                ; Auto size: 0
    348            halIntState_t  s;
    349          
    350            MAC_ASSERT(!macTxActive); /* cannot change channel during a transmit */
   \   000004   90....       MOV     DPTR,#macTxActive
   \   000007   E0           MOVX    A,@DPTR
   \   000008   6008         JZ      ??macRadioUpdateChannel_0
   \   00000A                ; Setup parameters for call to function halAssertHandler
   \   00000A   90....       MOV     DPTR,#(halAssertHandler & 0xffff)
   \   00000D   74..         MOV     A,#((halAssertHandler >> 16) & 0xff)
   \   00000F   12....       LCALL   ?BCALL               ; Banked call to: DPTR()
    351          
    352            /* if the channel has changed, set the radio to the new channel */
    353            HAL_ENTER_CRITICAL_SECTION(s);
   \                     ??macRadioUpdateChannel_0:
   \   000012   A2AF         MOV     C,0xa8.7
   \   000014   E4           CLR     A
   \   000015   92E0         MOV     0xE0 /* A   */.0,C
   \   000017   C2AF         CLR     0xa8.7
    354            if (reqChannel != macPhyChannel)
   \   000019   90....       MOV     DPTR,#??reqChannel
   \   00001C   E0           MOVX    A,@DPTR
   \   00001D   FA           MOV     R2,A
   \   00001E   90....       MOV     DPTR,#macPhyChannel
   \   000021   E0           MOVX    A,@DPTR
   \   000022   6A           XRL     A,R2
   \   000023   602A         JZ      ??macRadioUpdateChannel_1
    355            {
    356              macPhyChannel = reqChannel;
   \   000025   90....       MOV     DPTR,#??reqChannel
   \   000028   E0           MOVX    A,@DPTR
   \   000029   90....       MOV     DPTR,#macPhyChannel
   \   00002C   F0           MOVX    @DPTR,A
    357              HAL_EXIT_CRITICAL_SECTION(s);
   \   00002D   92AF         MOV     0xa8.7,C
    358          
    359              /* changing the channel stops any receive in progress */
    360              macRxOff();
   \   00002F                ; Setup parameters for call to function macRxOff
   \   00002F   90....       MOV     DPTR,#(macRxOff & 0xffff)
   \   000032   74..         MOV     A,#((macRxOff >> 16) & 0xff)
   \   000034   12....       LCALL   ?BCALL               ; Banked call to: DPTR()
    361              MAC_RADIO_SET_CHANNEL(macPhyChannel);
   \   000037   75F005       MOV     B,#0x5
   \   00003A   90....       MOV     DPTR,#macPhyChannel
   \   00003D   E0           MOVX    A,@DPTR
   \   00003E   A4           MUL     AB
   \   00003F   242E         ADD     A,#0x2e
   \   000041   90DF11       MOV     DPTR,#-0x20ef
   \   000044   F0           MOVX    @DPTR,A
    362              macRxOnRequest();
   \   000045                ; Setup parameters for call to function macRxOnRequest
   \   000045   90....       MOV     DPTR,#(macRxOnRequest & 0xffff)
   \   000048   74..         MOV     A,#((macRxOnRequest >> 16) & 0xff)
   \   00004A   12....       LCALL   ?BCALL               ; Banked call to: DPTR()
   \   00004D   8002         SJMP    ??macRadioUpdateChannel_2
    363            }
    364            else
    365            {
    366              HAL_EXIT_CRITICAL_SECTION(s);
   \                     ??macRadioUpdateChannel_1:
   \   00004F   92AF         MOV     0xa8.7,C
    367            }
    368          }
   \                     ??macRadioUpdateChannel_2:
   \   000051   02....       LJMP    ??Subroutine0_1 & 0xFFFF
    369          
    370          
    371          /**************************************************************************************************
    372           * @fn          macRadioStartScan
    373           *
    374           * @brief       Puts radio into selected scan mode.
    375           *
    376           * @param       scanMode - scan mode, see #defines in .h file
    377           *
    378           * @return      none
    379           **************************************************************************************************
    380           */

   \                                 In segment BANKED_CODE, align 1, keep-with-next
    381          void macRadioStartScan(uint8 scanMode)
   \                     macRadioStartScan:
    382          {
   \   000000   74F7         MOV     A,#-0x9
   \   000002   12....       LCALL   ?BANKED_ENTER_XDATA
   \   000005                ; Saved register size: 9
   \   000005                ; Auto size: 0
   \   000005   E9           MOV     A,R1
   \   000006   FE           MOV     R6,A
    383            MAC_ASSERT(macSleepState == MAC_SLEEP_STATE_AWAKE); /* radio must be awake */
   \   000007   90....       MOV     DPTR,#macSleepState
   \   00000A   E0           MOVX    A,@DPTR
   \   00000B   6008         JZ      ??macRadioStartScan_0
   \   00000D                ; Setup parameters for call to function halAssertHandler
   \   00000D   90....       MOV     DPTR,#(halAssertHandler & 0xffff)
   \   000010   74..         MOV     A,#((halAssertHandler >> 16) & 0xff)
   \   000012   12....       LCALL   ?BCALL               ; Banked call to: DPTR()
    384            MAC_ASSERT(macRxFilter == RX_FILTER_OFF); /* all filtering must be off to start scan */
   \                     ??macRadioStartScan_0:
   \   000015   90....       MOV     DPTR,#macRxFilter
   \   000018   E0           MOVX    A,@DPTR
   \   000019   6008         JZ      ??macRadioStartScan_1
   \   00001B                ; Setup parameters for call to function halAssertHandler
   \   00001B   90....       MOV     DPTR,#(halAssertHandler & 0xffff)
   \   00001E   74..         MOV     A,#((halAssertHandler >> 16) & 0xff)
   \   000020   12....       LCALL   ?BCALL               ; Banked call to: DPTR()
    385          
    386            /* set the receive filter based on the selected scan mode */
    387            if (scanMode == MAC_SCAN_ED)
   \                     ??macRadioStartScan_1:
   \   000023   EE           MOV     A,R6
   \   000024   7007         JNZ     ??macRadioStartScan_2
    388            {
    389              macRxFilter = RX_FILTER_ALL;
   \   000026   7401         MOV     A,#0x1
   \                     ??macRadioStartScan_3:
   \   000028   90....       MOV     DPTR,#macRxFilter
   \   00002B   802A         SJMP    ??macRadioStartScan_4
    390            }
    391            else if (scanMode == MAC_SCAN_ORPHAN)
   \                     ??macRadioStartScan_2:
   \   00002D   7403         MOV     A,#0x3
   \   00002F   6E           XRL     A,R6
   \   000030   7004         JNZ     ??macRadioStartScan_5
    392            {
    393              macRxFilter = RX_FILTER_NON_COMMAND_FRAMES;
   \   000032   7403         MOV     A,#0x3
   \   000034   80F2         SJMP    ??macRadioStartScan_3
    394            }
    395            else
    396            {
    397              MAC_ASSERT((scanMode == MAC_SCAN_ACTIVE) || (scanMode == MAC_SCAN_PASSIVE)); /* invalid scan type */
   \                     ??macRadioStartScan_5:
   \   000036   7401         MOV     A,#0x1
   \   000038   6E           XRL     A,R6
   \   000039   600D         JZ      ??macRadioStartScan_6
   \   00003B   7402         MOV     A,#0x2
   \   00003D   6E           XRL     A,R6
   \   00003E   6008         JZ      ??macRadioStartScan_6
   \   000040                ; Setup parameters for call to function halAssertHandler
   \   000040   90....       MOV     DPTR,#(halAssertHandler & 0xffff)
   \   000043   74..         MOV     A,#((halAssertHandler >> 16) & 0xff)
   \   000045   12....       LCALL   ?BCALL               ; Banked call to: DPTR()
    398              macRxFilter = RX_FILTER_NON_BEACON_FRAMES;
   \                     ??macRadioStartScan_6:
   \   000048   7402         MOV     A,#0x2
   \   00004A   90....       MOV     DPTR,#macRxFilter
   \   00004D   F0           MOVX    @DPTR,A
    399          
    400              /* for active and passive scans, per spec the pan ID must be 0xFFFF */
    401              MAC_RADIO_SET_PAN_ID(0xFFFF);
   \   00004E   74FF         MOV     A,#-0x1
   \   000050   90DF4C       MOV     DPTR,#-0x20b4
   \   000053   F0           MOVX    @DPTR,A
   \   000054   90DF4B       MOV     DPTR,#-0x20b5
   \                     ??macRadioStartScan_4:
   \   000057   F0           MOVX    @DPTR,A
    402            }
    403          }
   \   000058   02....       LJMP    ?Subroutine1 & 0xFFFF
    404          
    405          
    406          /**************************************************************************************************
    407           * @fn          macRadioStopScan
    408           *
    409           * @brief       Takes radio out of scan mode.  Note can be called if
    410           *
    411           * @param       none
    412           *
    413           * @return      none
    414           **************************************************************************************************
    415           */

   \                                 In segment BANKED_CODE, align 1, keep-with-next
    416          void macRadioStopScan(void)
   \                     macRadioStopScan:
    417          {
   \   000000   C082         PUSH    DPL
   \   000002   C083         PUSH    DPH
   \   000004                ; Saved register size: 2
   \   000004                ; Auto size: 0
    418            macRxFilter = RX_FILTER_OFF;
   \   000004   E4           CLR     A
   \   000005   90....       MOV     DPTR,#macRxFilter
   \   000008   F0           MOVX    @DPTR,A
    419          
    420            /* restore the pan ID (passive and active scans set pan ID to 0xFFFF) */
    421            MAC_RADIO_SET_PAN_ID(macPib.panId);
   \   000009   90....       MOV     DPTR,#(macPib + 29)
   \   00000C   E0           MOVX    A,@DPTR
   \   00000D   90DF4C       MOV     DPTR,#-0x20b4
   \   000010   F0           MOVX    @DPTR,A
   \   000011   90....       MOV     DPTR,#(macPib + 30)
   \   000014   E0           MOVX    A,@DPTR
   \   000015   02....       LJMP    ?Subroutine2 & 0xFFFF
    422          }
    423          
    424          
    425          /**************************************************************************************************
    426           * @fn          macRadioEnergyDetectStart
    427           *
    428           * @brief       Initiates energy detect.  The highest energy detected is recorded from the time
    429           *              when this function is called until the energy detect is stopped.
    430           *
    431           * @param       none
    432           *
    433           * @return      none
    434           **************************************************************************************************
    435           */

   \                                 In segment BANKED_CODE, align 1, keep-with-next
    436          void macRadioEnergyDetectStart(void)
   \                     macRadioEnergyDetectStart:
    437          {
   \   000000   C082         PUSH    DPL
   \   000002   C083         PUSH    DPH
   \   000004                ; Saved register size: 2
   \   000004                ; Auto size: 0
    438            MAC_RADIO_RECORD_MAX_RSSI_START();
   \   000004                ; Setup parameters for call to function macMcuRecordMaxRssiStart
   \   000004   90....       MOV     DPTR,#(macMcuRecordMaxRssiStart & 0xffff)
   \   000007   74..         MOV     A,#((macMcuRecordMaxRssiStart >> 16) & 0xff)
   \   000009   02....       LJMP    ??Subroutine0_0 & 0xFFFF
    439          }
    440          
    441          
    442          /**************************************************************************************************
    443           * @fn          macRadioEnergyDetectStop
    444           *
    445           * @brief       Called at completion of an energy detect.  Note: can be called even if energy
    446           *              detect is already stopped (needed by reset).
    447           *
    448           * @param       none

⌨️ 快捷键说明

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