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

📄 onboard.lst

📁 CC2430上开关控制灯和温度传感器采集两个例子
💻 LST
📖 第 1 页 / 共 5 页
字号:
     77          static byte registeredKeysTaskID = NO_TASK_ID;
   \                     ??registeredKeysTaskID:
   \   000000                DS 1
   \   000001                REQUIRE `?<Initializer for registeredKeysTaskID>`
   \   000001                REQUIRE __INIT_XDATA_I
     78          
     79          /*********************************************************************
     80           * LOCAL FUNCTIONS
     81           */
     82          
     83          static void ChkReset( void );
     84          
     85          /*********************************************************************
     86           * @fn      InitBoard()
     87           * @brief   Initialize the CC2420DB Board Peripherals
     88           * @param   level: COLD,WARM,READY
     89           * @return  None
     90           */

   \                                 In segment BANKED_CODE, align 1, keep-with-next
     91          void InitBoard( byte level )
   \                     InitBoard:
     92          {
   \   000000   74F5         MOV     A,#-0xb
   \   000002   12....       LCALL   ?BANKED_ENTER_XDATA
   \   000005                ; Saved register size: 11
   \   000005                ; Auto size: 0
     93            if ( level == OB_COLD )
   \   000005   E9           MOV     A,R1
   \   000006   6003         JZ      $+5
   \   000008   02....       LJMP    ??InitBoard_0 & 0xFFFF
     94            {
     95              // Initialize HAL
     96              HAL_BOARD_INIT();
   \   00000B   43FE01       ORL     0xfe,#0x1
   \   00000E   43FE02       ORL     0xfe,#0x2
   \   000011   43F701       ORL     0xf7,#0x1
   \   000014   43FE04       ORL     0xfe,#0x4
   \   000017   C292         CLR     0x90.2
     97              // Interrupts off
     98              osal_int_disable( INTS_ALL );
   \   000019                ; Setup parameters for call to function osal_int_disable
   \   000019   79FF         MOV     R1,#-0x1
   \   00001B   90....       MOV     DPTR,#(osal_int_disable & 0xffff)
   \   00001E   74..         MOV     A,#((osal_int_disable >> 16) & 0xff)
   \   000020   12....       LCALL   ?BCALL               ; Banked call to: DPTR()
     99              // Turn all LEDs off
    100              HalLedSet( HAL_LED_ALL, HAL_LED_MODE_OFF );
   \   000023                ; Setup parameters for call to function HalLedSet
   \   000023   7A00         MOV     R2,#0x0
   \   000025   790F         MOV     R1,#0xf
   \   000027   90....       MOV     DPTR,#(HalLedSet & 0xffff)
   \   00002A   74..         MOV     A,#((HalLedSet >> 16) & 0xff)
   \   00002C   12....       LCALL   ?BCALL               ; Banked call to: DPTR()
    101              // Check for Brown-Out reset
    102              ChkReset();
   \   00002F   7418         MOV     A,#0x18
   \   000031   55BE         ANL     A,0xbe
   \   000033   FA           MOV     R2,A
   \   000034   605A         JZ      ??InitBoard_1
   \   000036   7408         MOV     A,#0x8
   \   000038   6A           XRL     A,R2
   \   000039   6055         JZ      ??InitBoard_1
   \   00003B   7410         MOV     A,#0x10
   \   00003D   6A           XRL     A,R2
   \   00003E   6050         JZ      ??InitBoard_1
   \   000040   C2AF         CLR     0xa8.7
   \   000042   8048         SJMP    ??InitBoard_2
   \                     ??InitBoard_3:
   \   000044                ; Setup parameters for call to function HalLedSet
   \   000044   7A01         MOV     R2,#0x1
   \   000046   EE           MOV     A,R6
   \   000047   F9           MOV     R1,A
   \   000048   90....       MOV     DPTR,#(HalLedSet & 0xffff)
   \   00004B   74..         MOV     A,#((HalLedSet >> 16) & 0xff)
   \   00004D   12....       LCALL   ?BCALL               ; Banked call to: DPTR()
   \   000050                ; Setup parameters for call to function Onboard_wait
   \   000050   7A24         MOV     R2,#0x24
   \   000052   7BF4         MOV     R3,#-0xc
   \   000054   90....       MOV     DPTR,#(Onboard_wait & 0xffff)
   \   000057   74..         MOV     A,#((Onboard_wait >> 16) & 0xff)
   \   000059   12....       LCALL   ?BCALL               ; Banked call to: DPTR()
   \   00005C                ; Setup parameters for call to function Onboard_wait
   \   00005C   7A24         MOV     R2,#0x24
   \   00005E   7BF4         MOV     R3,#-0xc
   \   000060   74..         MOV     A,#((Onboard_wait >> 16) & 0xff)
   \   000062   12....       LCALL   ?BCALL               ; Banked call to: DPTR()
   \   000065                ; Setup parameters for call to function HalLedSet
   \   000065   7A00         MOV     R2,#0x0
   \   000067   EE           MOV     A,R6
   \   000068   F9           MOV     R1,A
   \   000069   90....       MOV     DPTR,#(HalLedSet & 0xffff)
   \   00006C   74..         MOV     A,#((HalLedSet >> 16) & 0xff)
   \   00006E   12....       LCALL   ?BCALL               ; Banked call to: DPTR()
   \   000071                ; Setup parameters for call to function Onboard_wait
   \   000071   7A7C         MOV     R2,#0x7c
   \   000073   7B92         MOV     R3,#-0x6e
   \   000075   90....       MOV     DPTR,#(Onboard_wait & 0xffff)
   \   000078   74..         MOV     A,#((Onboard_wait >> 16) & 0xff)
   \   00007A   12....       LCALL   ?BCALL               ; Banked call to: DPTR()
   \   00007D                ; Setup parameters for call to function Onboard_wait
   \   00007D   7A7C         MOV     R2,#0x7c
   \   00007F   7B92         MOV     R3,#-0x6e
   \   000081   74..         MOV     A,#((Onboard_wait >> 16) & 0xff)
   \   000083   12....       LCALL   ?BCALL               ; Banked call to: DPTR()
   \   000086   EE           MOV     A,R6
   \   000087   C3           CLR     C
   \   000088   13           RRC     A
   \   000089   FE           MOV     R6,A
   \   00008A   70B8         JNZ     ??InitBoard_3
   \                     ??InitBoard_2:
   \   00008C   7E08         MOV     R6,#0x8
   \   00008E   80B4         SJMP    ??InitBoard_3
    103          
    104            /* Timer2 for Osal timer
    105             * This development board uses ATmega128 Timer/Counter3 to provide
    106             * system clock ticks for the OSAL scheduler. These functions perform
    107             * the hardware specific actions required by the OSAL_Timers module.
    108             */
    109             OnboardTimerIntEnable = FALSE;
   \                     ??InitBoard_1:
   \   000090   E4           CLR     A
   \   000091   90....       MOV     DPTR,#OnboardTimerIntEnable
   \   000094   F0           MOVX    @DPTR,A
    110           	 HalTimerConfig (OSAL_TIMER,                        // 8bit timer2
    111                            HAL_TIMER_MODE_CTC,                 // Clear Timer on Compare
    112                            HAL_TIMER_CHANNEL_SINGLE,           // Channel 1 - default
    113                            HAL_TIMER_CH_MODE_OUTPUT_COMPARE,   // Output Compare mode
    114                            OnboardTimerIntEnable,              // Use interrupt
    115                            Onboard_TimerCallBack);             // Channel Mode
   \   000095                ; Setup parameters for call to function HalTimerConfig
   \   000095   75....       MOV     ?V0 + 0,#(Onboard_TimerCallBack & 0xff)
   \   000098   75....       MOV     ?V0 + 1,#((Onboard_TimerCallBack >> 8) & 0xff)
   \   00009B   75....       MOV     ?V0 + 2,#((Onboard_TimerCallBack >> 16) & 0xff)
   \   00009E   78..         MOV     R0,#?V0 + 0
   \   0000A0   12....       LCALL   ?PUSH_XSTACK_I_THREE
   \   0000A3   7D00         MOV     R5,#0x0
   \   0000A5   7C02         MOV     R4,#0x2
   \   0000A7   7B01         MOV     R3,#0x1
   \   0000A9   7A02         MOV     R2,#0x2
   \   0000AB   7902         MOV     R1,#0x2
   \   0000AD   90....       MOV     DPTR,#(HalTimerConfig & 0xffff)
   \   0000B0   74..         MOV     A,#((HalTimerConfig >> 16) & 0xff)
   \   0000B2   801A         SJMP    ??InitBoard_4
    116          
    117            }
    118            else  // !OB_COLD
    119            {
    120          #ifdef ZTOOL_PORT
    121              MT_IndReset();
    122          #endif
    123          
    124               /* Initialize Key stuff */
    125              OnboardKeyIntEnable = HAL_KEY_INTERRUPT_DISABLE;
   \                     ??InitBoard_0:
   \   0000B4   E4           CLR     A
   \   0000B5   90....       MOV     DPTR,#OnboardKeyIntEnable
   \   0000B8   F0           MOVX    @DPTR,A
    126              HalKeyConfig( OnboardKeyIntEnable, OnBoard_KeyCallback);
   \   0000B9                ; Setup parameters for call to function HalKeyConfig
   \   0000B9   75....       MOV     ?V0 + 0,#(OnBoard_KeyCallback & 0xff)
   \   0000BC   75....       MOV     ?V0 + 1,#((OnBoard_KeyCallback >> 8) & 0xff)
   \   0000BF   75....       MOV     ?V0 + 2,#((OnBoard_KeyCallback >> 16) & 0xff)
   \   0000C2   78..         MOV     R0,#?V0 + 0
   \   0000C4   12....       LCALL   ?PUSH_XSTACK_I_THREE
   \   0000C7   7900         MOV     R1,#0x0
   \   0000C9   90....       MOV     DPTR,#(HalKeyConfig & 0xffff)
   \   0000CC   74..         MOV     A,#((HalKeyConfig >> 16) & 0xff)
   \                     ??InitBoard_4:
   \   0000CE   12....       LCALL   ?BCALL               ; Banked call to: DPTR()
   \   0000D1   7403         MOV     A,#0x3
   \   0000D3   12....       LCALL   ?DEALLOC_XSTACK8
    127            }
    128          }
   \   0000D6   7F03         MOV     R7,#0x3
   \   0000D8   02....       LJMP    ?BANKED_LEAVE_XDATA
    129          
    130          /*********************************************************************
    131           * @fn      ChkReset()
    132           * @brief   Check reset bits - if reset cause is unknown, assume a
    133           *          brown-out (low power), assume batteries are not reliable,
    134           *          hang in a loop and sequence through the LEDs.
    135           * @param   None
    136           * @return  None
    137           *********************************************************************/
    138          void ChkReset( void )
    139          {
    140            uint8 led;
    141            uint8 rib;
    142          
    143            // Isolate reset indicator bits
    144            rib = SLEEP & LRESET;
    145          
    146            if ( rib == RESETPO )
    147            {
    148              // Put code here to handle Power-On reset
    149            }
    150            else if ( rib == RESETEX )
    151            {
    152              // Put code here to handle External reset
    153            }
    154            else if ( rib == RESETWD )
    155            {
    156              // Put code here to handle WatchDog reset
    157            }
    158            else
    159            {
    160              // Unknown, hang and blink
    161              HAL_DISABLE_INTERRUPTS();
    162              led = HAL_LED_4;
    163              while ( 1 ) {
    164                HalLedSet( led, HAL_LED_MODE_ON );
    165                MicroWait( 62500 );
    166                MicroWait( 62500 );
    167                HalLedSet( led, HAL_LED_MODE_OFF );
    168                MicroWait( 37500 );
    169                MicroWait( 37500 );
    170                if ( !(led >>= 1) )
    171                  led = HAL_LED_4;
    172              }
    173            }
    174          }
    175          
    176          /*********************************************************************
    177           *                        "Keyboard" Support
    178           *********************************************************************/
    179          
    180          /*********************************************************************
    181           * Keyboard Register function
    182           *
    183           * The keyboard handler is setup to send all keyboard changes to
    184           * one task (if a task is registered).
    185           *
    186           * If a task registers, it will get all the keys. You can change this
    187           * to register for individual keys.
    188           *********************************************************************/

   \                                 In segment BANKED_CODE, align 1, keep-with-next
    189          byte RegisterForKeys( byte task_id )
   \                     RegisterForKeys:
    190          {
   \   000000   C082         PUSH    DPL
   \   000002   C083         PUSH    DPH
   \   000004                ; Saved register size: 2
   \   000004                ; Auto size: 0
    191            // Allow only the first task

⌨️ 快捷键说明

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