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

📄 hal_sleep.lst

📁 cc2430应用实例
💻 LST
📖 第 1 页 / 共 5 页
字号:
   \   000278   7B00         MOV     R3,#0x0
   \   00027A   90....       MOV     DPTR,#(halSleepWait & 0xffff)
   \   00027D   74..         MOV     A,#((halSleepWait >> 16) & 0xff)
   \   00027F   12....       LCALL   ?BCALL               ; Banked call to: DPTR()
   \   000282   53FDFD       ANL     0xfd,#0xfd
   \   000285   438F02       ORL     0x8f,#0x2
    411          
    412                      /* set CC2430 power mode */
    413                      HAL_SLEEP_SET_POWER_MODE(halPwrMgtMode);
   \   000288   90DF60       MOV     DPTR,#-0x20a0
   \   00028B   E0           MOVX    A,@DPTR
   \   00028C   C3           CLR     C
   \   00028D   9404         SUBB    A,#0x4
   \   00028F   53BEFC       ANL     0xbe,#0xfc
   \   000292   E5BE         MOV     A,0xbe
   \   000294   90....       MOV     DPTR,#??halPwrMgtMode
   \   000297   E0           MOVX    A,@DPTR
   \   000298   45BE         ORL     A,0xbe
   \   00029A   F5BE         MOV     0xbe,A
   \   00029C   4009         JC      ??halSleep_17
   \   00029E   00           NOP
   \   00029F   00           NOP
   \   0002A0   00           NOP
   \   0002A1   7403         MOV     A,#0x3
   \   0002A3   55BE         ANL     A,0xbe
   \   0002A5   6004         JZ      ??halSleep_18
   \                     ??halSleep_17:
   \   0002A7   438701       ORL     0x87,#0x1
   \   0002AA   00           NOP
    414                      /* wake up from sleep */
    415          
    416                      HAL_ENTER_CRITICAL_SECTION(intState);
   \                     ??halSleep_18:
   \   0002AB   A2AF         MOV     C,0xa8.7
   \   0002AD   E4           CLR     A
   \   0002AE   92E0         MOV     0xE0 /* A   */.0,C
   \   0002B0   85..82       MOV     DPL,?XSP + 0
   \   0002B3   85..83       MOV     DPH,?XSP + 1
   \   0002B6   F0           MOVX    @DPTR,A
   \   0002B7   C2AF         CLR     0xa8.7
    417                    }
    418          
    419                    /* restore interrupt enable registers */
    420                    HAL_SLEEP_IE_RESTORE(ien0, ien1, ien2);
   \                     ??halSleep_16:
   \   0002B9   85..A8       MOV     0xa8,?V0 + 0
   \   0002BC   85..B8       MOV     0xb8,?V0 + 1
   \   0002BF   85..9A       MOV     0x9a,?V0 + 2
    421          
    422                    /* disable sleep timer interrupt */
    423                    HAL_SLEEP_TIMER_DISABLE_INT();
   \   0002C2   C2AD         CLR     0xa8.5
    424          
    425                    /* set main clock source to crystal for Rev B and Rev D only */
    426                    HAL_SLEEP_SET_MAIN_CLOCK_CRYSTAL();
   \   0002C4   53BEFB       ANL     0xbe,#0xfb
   \                     ??halSleep_19:
   \   0002C7   E5BE         MOV     A,0xbe
   \   0002C9   A2E6         MOV     C,0xE0 /* A   */.6
   \   0002CB   50FA         JNC     ??halSleep_19
   \   0002CD   00           NOP
   \   0002CE                ; Setup parameters for call to function halSleepWait
   \   0002CE   7A3F         MOV     R2,#0x3f
   \   0002D0   7B00         MOV     R3,#0x0
   \   0002D2   90....       MOV     DPTR,#(halSleepWait & 0xffff)
   \   0002D5   74..         MOV     A,#((halSleepWait >> 16) & 0xff)
   \   0002D7   12....       LCALL   ?BCALL               ; Banked call to: DPTR()
   \   0002DA   75C600       MOV     0xc6,#0x0
   \                     ??halSleep_20:
   \   0002DD   E5C6         MOV     A,0xc6
   \   0002DF   70FC         JNZ     ??halSleep_20
   \   0002E1   43BE04       ORL     0xbe,#0x4
    427          
    428                    /* Calculate timer elasped */
    429                    halAccumulatedSleepTime += (HalTimerElapsed() / TICK_COUNT);
   \   0002E4                ; Setup parameters for call to function HalTimerElapsed
   \   0002E4   90....       MOV     DPTR,#(HalTimerElapsed & 0xffff)
   \   0002E7   74..         MOV     A,#((HalTimerElapsed >> 16) & 0xff)
   \   0002E9   12....       LCALL   ?BCALL               ; Banked call to: DPTR()
   \   0002EC   8A..         MOV     ?V0 + 0,R2
   \   0002EE   8B..         MOV     ?V0 + 1,R3
   \   0002F0   8C..         MOV     ?V0 + 2,R4
   \   0002F2   8D..         MOV     ?V0 + 3,R5
   \   0002F4   90....       MOV     DPTR,#??halAccumulatedSleepTime
   \   0002F7   78..         MOV     R0,#?V0 + 0
   \   0002F9   12....       LCALL   ?L_ADD_TO_X
    430          
    431                    /* deduct the sleep time for the next iteration */
    432                    if ( osal_timeout > halAccumulatedSleepTime)
   \   0002FC   90....       MOV     DPTR,#??halAccumulatedSleepTime
   \   0002FF   8E..         MOV     ?V0 + 0,R6
   \   000301   8F..         MOV     ?V0 + 1,R7
   \   000303   75..00       MOV     ?V0 + 2,#0x0
   \   000306   75..00       MOV     ?V0 + 3,#0x0
   \   000309   78..         MOV     R0,#?V0 + 0
   \   00030B   12....       LCALL   ?UL_GT_X
   \   00030E   5011         JNC     ??halSleep_21
    433                    {
    434                      osal_timeout -= halAccumulatedSleepTime;
   \   000310   90....       MOV     DPTR,#??halAccumulatedSleepTime
   \   000313   78..         MOV     R0,#?V0 + 0
   \   000315   12....       LCALL   ?L_MOV_X
   \   000318   C3           CLR     C
   \   000319   EE           MOV     A,R6
   \   00031A   95..         SUBB    A,?V0 + 0
   \   00031C   FE           MOV     R6,A
   \   00031D   EF           MOV     A,R7
   \   00031E   95..         SUBB    A,?V0 + 1
   \   000320   FF           MOV     R7,A
    435                    }
    436          
    437                    /* if the remaining time is less than the PM_MIN_SLEEP_TIME
    438                     * burn the remaining time in a delay loop
    439                     * AN044 - MINIMUM SLEEP PERIODS WITH PULL-DOWN RESISTOR
    440                     */
    441                    if ( osal_timeout < PM_MIN_SLEEP_TIME )
   \                     ??halSleep_21:
   \   000321   C3           CLR     C
   \   000322   EE           MOV     A,R6
   \   000323   940E         SUBB    A,#0xe
   \   000325   EF           MOV     A,R7
   \   000326   9400         SUBB    A,#0x0
   \   000328   503F         JNC     ??halSleep_22
    442                    {
    443                      halSleepWait(osal_timeout*1000);
   \   00032A                ; Setup parameters for call to function halSleepWait
   \   00032A   EE           MOV     A,R6
   \   00032B   FA           MOV     R2,A
   \   00032C   EF           MOV     A,R7
   \   00032D   FB           MOV     R3,A
   \   00032E   EA           MOV     A,R2
   \   00032F   75F0E8       MOV     B,#-0x18
   \   000332   A4           MUL     AB
   \   000333   CA           XCH     A,R2
   \   000334   ACF0         MOV     R4,B
   \   000336   75F003       MOV     B,#0x3
   \   000339   A4           MUL     AB
   \   00033A   2C           ADD     A,R4
   \   00033B   FC           MOV     R4,A
   \   00033C   75F0E8       MOV     B,#-0x18
   \   00033F   EB           MOV     A,R3
   \   000340   A4           MUL     AB
   \   000341   2C           ADD     A,R4
   \   000342   FB           MOV     R3,A
   \   000343   90....       MOV     DPTR,#(halSleepWait & 0xffff)
   \   000346   74..         MOV     A,#((halSleepWait >> 16) & 0xff)
   \   000348   12....       LCALL   ?BCALL               ; Banked call to: DPTR()
    444                      halAccumulatedSleepTime += osal_timeout;
   \   00034B   8E..         MOV     ?V0 + 0,R6
   \   00034D   8F..         MOV     ?V0 + 1,R7
   \   00034F   75..00       MOV     ?V0 + 2,#0x0
   \   000352   75..00       MOV     ?V0 + 3,#0x0
   \   000355   90....       MOV     DPTR,#??halAccumulatedSleepTime
   \   000358   78..         MOV     R0,#?V0 + 0
   \   00035A   12....       LCALL   ?L_ADD_TO_X
    445                      osal_timeout = halAccumulatedSleepTime;
   \   00035D   90....       MOV     DPTR,#??halAccumulatedSleepTime
   \   000360   78..         MOV     R0,#?V0 + 0
   \   000362   12....       LCALL   ?L_MOV_X
   \   000365   AE..         MOV     R6,?V0 + 0
   \   000367   AF..         MOV     R7,?V0 + 1
    446                    }
    447          
    448          #ifdef HAL_SLEEP_DEBUG_LED
    449                    HAL_TURN_ON_LED3();
    450          #else
    451                    /* use this to turn LEDs back on after sleep */
    452                    HalLedExitSleep();
   \                     ??halSleep_22:
   \   000369                ; Setup parameters for call to function HalLedExitSleep
   \   000369   90....       MOV     DPTR,#(HalLedExitSleep & 0xffff)
   \   00036C   74..         MOV     A,#((HalLedExitSleep >> 16) & 0xff)
   \   00036E   12....       LCALL   ?BCALL               ; Banked call to: DPTR()
    453          #endif
    454          
    455                    /* handle peripherals; exit loop if key presses */
    456                    if ( HalKeyExitSleep() )
   \   000371                ; Setup parameters for call to function HalKeyExitSleep
   \   000371   90....       MOV     DPTR,#(HalKeyExitSleep & 0xffff)
   \   000374   74..         MOV     A,#((HalKeyExitSleep >> 16) & 0xff)
   \   000376   12....       LCALL   ?BCALL               ; Banked call to: DPTR()
   \   000379   E9           MOV     A,R1
   \   00037A   701F         JNZ     ??halSleep_10
    457                    {
    458          #if defined (PM2_HOLDOFF_TIME) && (PM2_HOLDOFF_TIME > 0)
    459                      /* The deepest sleep alowwed is PM1 until after the timer expired
    460                       * AN044 - COMBINING POWER MODES
    461                       */
    462                      halSleepLevel = CC2430_PM1;
    463                      osal_stop_timerEx (Hal_TaskID, HAL_SLEEP_TIMER_EVENT);
    464                      osal_start_timerEx (Hal_TaskID, HAL_SLEEP_TIMER_EVENT, PM2_HOLDOFF_TIME);
    465          #endif /* (PM2_HOLDOFF_TIME > 0) */
    466                      break;
    467                    }
    468          
    469                    /* exit loop if no timer active */
    470                    if ( timeout == 0 ) break;
   \   00037C   7401         MOV     A,#0x1
   \   00037E   12....       LCALL   ?XSTACK_DISP0_8
   \   000381   C082         PUSH    DPL
   \   000383   C083         PUSH    DPH
   \   000385   90....       MOV     DPTR,#__Constant_0
   \   000388   78..         MOV     R0,#?V0 + 0
   \   00038A   12....       LCALL   ?L_MOV_X
   \   00038D   D083         POP     DPH
   \   00038F   D082         POP     DPL
   \   000391   78..         MOV     R0,#?V0 + 0
   \   000393   12....       LCALL   ?L_EQ_X
   \   000396   6003         JZ      $+5
   \   000398   02....       LJMP    ??halSleep_8 & 0xFFFF
    471                  }
    472          
    473                  /* power on the MAC; blocks until completion */
    474                  MAC_PwrOnReq();
   \                     ??halSleep_10:
   \   00039B                ; Setup parameters for call to function MAC_PwrOnReq
   \   00039B   90....       MOV     DPTR,#(MAC_PwrOnReq & 0xffff)
   \   00039E   74..         MOV     A,#((MAC_PwrOnReq >> 16) & 0xff)
   \   0003A0   12....       LCALL   ?BCALL               ; Banked call to: DPTR()
    475          
    476                  /* adjust OSAL timers */
    477                  osal_adjust_timers();
   \   0003A3                ; Setup parameters for call to function osal_adjust_timers
   \   0003A3   90....       MOV     DPTR,#(osal_adjust_timers & 0xffff)
   \   0003A6   74..         MOV     A,#((osal_adjust_timers >> 16) 

⌨️ 快捷键说明

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