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

📄 mac_timer.lst

📁 zigbee location examples
💻 LST
📖 第 1 页 / 共 4 页
字号:
##############################################################################
#                                                                            #
# IAR 8051 C/C++ Compiler V7.20H/W32                   16/Jan/2007  15:30:31 #
# Copyright 2004-2006 IAR Systems. All rights reserved.                      #
#                                                                            #
#    Core               =  plain                                             #
#    Code model         =  banked                                            #
#    Data model         =  large                                             #
#    Calling convention =  xdata reentrant                                   #
#    Constant location  =  data                                              #
#    Dptr setup         =  1,16                                              #
#    Source file        =  E:\公司产品资料\Zigbee\cc2431\cc2431定位\LOC_Engi #
#                          ne\lib\mac\CC2430\mac_timer.c                     #
#    Command line       =  -I "C:\Program Files\IAR Systems\Embedded         #
#                          Workbench 4.05 Evaluation version\8051\INC\" -I   #
#                          "C:\Program Files\IAR Systems\Embedded Workbench  #
#                          4.05 Evaluation version\8051\SRC\LIB\" -I         #
#                          "C:\Program Files\IAR Systems\Embedded Workbench  #
#                          4.05 Evaluation version\8051\INC\CLIB\" -I        #
#                          E:\公司产品资料\Zigbee\cc2431\cc2431定位\LOC_Engi #
#                          ne\Test\mac\mac_loc\..\..\..\include\ -I          #
#                          E:\公司产品资料\Zigbee\cc2431\cc2431定位\LOC_Engi #
#                          ne\Test\mac\mac_loc\..\..\..\include\mac\cc2430\  #
#                          -I E:\公司产品资料\Zigbee\cc2431\cc2431定位\LOC_E #
#                          ngine\Test\mac\mac_loc\..\..\..\include\hal\cc243 #
#                          0\ -I E:\公司产品资料\Zigbee\cc2431\cc2431定位\LO #
#                          C_Engine\Test\mac\mac_loc\..\..\..\apps\ -D       #
#                          CC2430EB -D USE_LED -lCN                          #
#                          E:\公司产品资料\Zigbee\cc2431\cc2431定位\LOC_Engi #
#                          ne\Test\mac\mac_loc\CC2430EB\List\ -lA            #
#                          E:\公司产品资料\Zigbee\cc2431\cc2431定位\LOC_Engi #
#                          ne\Test\mac\mac_loc\CC2430EB\List\ -o             #
#                          E:\公司产品资料\Zigbee\cc2431\cc2431定位\LOC_Engi #
#                          ne\Test\mac\mac_loc\CC2430EB\Obj\ -e -s9 --debug  #
#                          --core=plain --dptr=16,1 --data_model=large       #
#                          --code_model=banked --calling_convention=xdata_re #
#                          entrant --place_constants=data --nr_virtual_regs  #
#                          8 E:\公司产品资料\Zigbee\cc2431\cc2431定位\LOC_En #
#                          gine\lib\mac\CC2430\mac_timer.c                   #
#    List file          =  E:\公司产品资料\Zigbee\cc2431\cc2431定位\LOC_Engi #
#                          ne\Test\mac\mac_loc\CC2430EB\List\mac_timer.lst   #
#    Object file        =  E:\公司产品资料\Zigbee\cc2431\cc2431定位\LOC_Engi #
#                          ne\Test\mac\mac_loc\CC2430EB\Obj\mac_timer.r51    #
#                                                                            #
#                                                                            #
##############################################################################

E:\公司产品资料\Zigbee\cc2431\cc2431定位\LOC_Engine\lib\mac\CC2430\mac_timer.c
      1          /*******************************************************************************************************
      2           *                                                                                                     *
      3           *        **********                                                                                   *
      4           *       ************                                                                                  *
      5           *      ***        ***                                                                                 *
      6           *      ***   +++   ***                                                                                *
      7           *      ***   + +   ***                                                                                *
      8           *      ***   +                         CHIPCON CC2430 INTEGRATED 802.15.4 MAC AND PHY                 *
      9           *      ***   + +   ***                           Low-Level Timing Functions                           *
     10           *      ***   +++   ***                                                                                *
     11           *      ***        ***                                                                                 *
     12           *       ************                                                                                  *
     13           *        **********                                                                                   *
     14           *                                                                                                     *
     15           *******************************************************************************************************
     16           * CONFIDENTIAL                                                                                        *
     17           * The use of this file is restricted by the signed MAC software license agreement.                    *
     18           *                                                                                                     *
     19           * Copyright Chipcon AS, 2005                                                                          *
     20           *******************************************************************************************************
     21           * This module contains the MAC callback timer, which is used to handle timer events, and start the    *
     22           * execution of tasks. handles. The timer generates a T1.COMPA interrupt at every                      *
     23           * 320 usecs = 20 symbols = 1 backoff slot.                                                            *
     24           *                                                                                                     *
     25           * Command strobes that need to be aligned with backoff slot boundary must use the WAIT_FOR_BOUNADRY() *
     26           * macro.                                                                                              *
     27           *                                                                                                     *
     28           * NOTE: These functions are meant to be used with an 32MHz crystal oscillator!                        *
     29           *******************************************************************************************************/
     30          #include "mac_headers.h"

   \                                 In segment SFR_AN, at 0x94
   \   unsigned char volatile __sfr T2CMP
   \                     T2CMP:
   \   000000                DS 1

   \                                 In segment SFR_AN, at 0x9c
   \   unsigned char volatile __sfr T2PEROF0
   \                     T2PEROF0:
   \   000000                DS 1

   \                                 In segment SFR_AN, at 0x9d
   \   unsigned char volatile __sfr T2PEROF1
   \                     T2PEROF1:
   \   000000                DS 1

   \                                 In segment SFR_AN, at 0x9e
   \   unsigned char volatile __sfr T2PEROF2
   \                     T2PEROF2:
   \   000000                DS 1

   \                                 In segment SFR_AN, at 0xa1
   \   unsigned char volatile __sfr T2OF0
   \                     T2OF0:
   \   000000                DS 1

   \                                 In segment SFR_AN, at 0xa2
   \   unsigned char volatile __sfr T2OF1
   \                     T2OF1:
   \   000000                DS 1

   \                                 In segment SFR_AN, at 0xa3
   \   unsigned char volatile __sfr T2OF2
   \                     T2OF2:
   \   000000                DS 1

   \                                 In segment SFR_AN, at 0xa4
   \   unsigned char volatile __sfr T2CAPLPL
   \                     T2CAPLPL:
   \   000000                DS 1

   \                                 In segment SFR_AN, at 0xa5
   \   unsigned char volatile __sfr T2CAPHPH
   \                     T2CAPHPH:
   \   000000                DS 1

   \                                 In segment SFR_AN, at 0xa6
   \   unsigned char volatile __sfr T2TLD
   \                     T2TLD:
   \   000000                DS 1

   \                                 In segment SFR_AN, at 0xa7
   \   unsigned char volatile __sfr T2THD
   \                     T2THD:
   \   000000                DS 1

   \                                 In segment SFR_AN, at 0xc3
   \   unsigned char volatile __sfr T2CNF
   \                     T2CNF:
   \   000000                DS 1
     31          
     32          //-------------------------------------------------------------------------------------------------------
     33          // Callback table and other timer-related variables

   \                                 In segment XDATA_AN, at 0xe000
     34          __no_init MAC_CALLBACK_INFO __xdata pMtimCallbacks[MAC_CALLBACK_COUNT] @ 0xE000;
   \                     pMtimCallbacks:
   \   000000                DS 108

   \                                 In segment PM0_XDATA, align 1
     35          __no_init MAC_TIMER_INFO   mtimInfo @ "PM0_XDATA";
   \                     mtimInfo:
   \   000000                DS 11

   \                                 In segment DATA_Z, align 1, keep-with-next
   \   000000                REQUIRE __INIT_DATA_Z
     36          UINT8 __data firstCallback;
   \                     firstCallback:
   \   000000                DS 1

   \                                 In segment DATA_Z, align 1, keep-with-next
   \   000000                REQUIRE __INIT_DATA_Z
     37          UINT8 __data intAlreadyOff;
   \                     intAlreadyOff:
   \   000000                DS 1
     38          //-------------------------------------------------------------------------------------------------------
     39          
     40          
     41          
     42          
     43          //-------------------------------------------------------------------------------------------------------
     44          //  void mtimInit(void)
     45          //
     46          //  DESCRIPTION:
     47          //      Initializes Timer 2  for interrupts at every backoff slot
     48          //-------------------------------------------------------------------------------------------------------

   \                                 In segment NEAR_CODE, align 1, keep-with-next
     49          ROOT void mtimInit(BOOL synchronousStart) {
   \                     mtimInit:
   \   000000   C082         PUSH    DPL
   \   000002   C083         PUSH    DPH
   \   000004                ; Saved register size: 2
   \   000004                ; Auto size: 0
     50              UINT8 n;
     51          
     52              // Initialize the callback table
     53              for (n = 0; n < MAC_CALLBACK_COUNT; n++) {
   \   000004   758205       MOV     DPL,#0x5
   \   000007   7583E0       MOV     DPH,#-0x20
   \   00000A   7A0C         MOV     R2,#0xc
     54                  pMtimCallbacks[n].occupied = FALSE;
   \                     ??mtimInit_0:
   \   00000C   E4           CLR     A
   \   00000D   F0           MOVX    @DPTR,A
     55              }
   \   00000E   E582         MOV     A,DPL
   \   000010   2409         ADD     A,#0x9
   \   000012   F582         MOV     DPL,A
   \   000014   E583         MOV     A,DPH
   \   000016   3400         ADDC    A,#0x0
   \   000018   F583         MOV     DPH,A
   \   00001A   1A           DEC     R2
   \   00001B   EA           MOV     A,R2
   \   00001C   70EE         JNZ     ??mtimInit_0
     56          
     57              // Set head of queue
     58              firstCallback = NO_CALLBACK;
   \   00001E   75..FF       MOV     firstCallback,#-0x1
     59          
     60              // Configure the timer registers
     61              T2_STOP();
   \   000021   53C3FE       ANL     0xc3,#0xfe
     62              T2_SET_COUNTER(0);
   \   000024   75A600       MOV     0xa6,#0x0
   \   000027   75A700       MOV     0xa7,#0x0
     63              T2_SET_COUNTER_RELOAD_VALUE(32 * 320);                        // 320 us at 32 MHz
   \   00002A   75A400       MOV     0xa4,#0x0
   \   00002D   75A528       MOV     0xa5,#0x28
     64              T2_SET_COUNTER_COMPARE_VALUE(HIBYTE(32 * (320 - 32)), FALSE); // 90 %
   \   000030   759424       MOV     0x94,#0x24
   \   000033   53C3F7       ANL     0xc3,#0xf7
     65              T2_SET_OVERFLOW_COUNTER(0);
   \   000036   75A100       MOV     0xa1,#0x0
   \   000039   75A200       MOV     0xa2,#0x0
   \   00003C   75A300       MOV     0xa3,#0x0
     66              T2_SET_OVERFLOW_COUNTER_COMPARE_VALUE(0);
   \   00003F   759C00       MOV     0x9c,#0x0
   \   000042   759D00       MOV     0x9d,#0x0
   \   000045   539EF0       ANL     0x9e,#0xf0
   \   000048   E59E         MOV     A,0x9e
     67          
     68              if (synchronousStart == FALSE)
   \   00004A   E9           MOV     A,R1
   \   00004B   7008         JNZ     ??mtimInit_1
     69                  T2_START_NOSYNC();
   \   00004D   53C3FD       ANL     0xc3,#0xfd
   \   000050   43C301       ORL     0xc3,#0x1
   \   000053   8003         SJMP    ??mtimInit_2
     70              else
     71                  mtimStartSync ();
   \                     ??mtimInit_1:
   \   000055                ; Setup parameters for call to function mtimStartSync
   \   000055   12....       LCALL   mtimStartSync
     72          
     73              // Enable the timer 2 counter overflow flag
     74              T2_CLEAR_COUNTER_OVERFLOW_FLAG();
   \                     ??mtimInit_2:
   \   000058   53C3BF       ANL     0xc3,#0xbf
     75              T2_ENABLE_COUNTER_OVERFLOW_FLAG();
   \   00005B   439E40       ORL     0x9e,#0x40
     76              CLEAR_TIMER2_INT();
   \   00005E   C2C2         CLR     0xc0.2
     77          
     78          } // mtimInit
   \   000060   D083         POP     DPH
   \   000062   D082         POP     DPL
   \   000064   22           RET
     79          
     80          
     81          
     82          
     83          //-------------------------------------------------------------------------------------------------------
     84          //  BOOL mtimSetCallback(VFPTR pFunc, INT32 timeout)
     85          //
     86          //  DESCRIPTION:
     87          //      Activates a timed callback. The callback will happen at [timeout] backoff slots from now.
     88          //      Note: There can only be MAC_CALLBACK_COUNT active callbacks.
     89          //
     90          //  PARAMETERS:
     91          //      VFPTR pFunc
     92          //          A pointer to the callback function
     93          //      INT32 timeout
     94          //          The number of backoff slots to count before calling pFunc(). If this value is negative, the
     95          //          function will not be executed.
     96          //
     97          //  RETURN VALUE:
     98          //      BOOL

⌨️ 快捷键说明

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