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

📄 hal_led.lst

📁 用IAR开发的ZIGBEE网络路由例子
💻 LST
📖 第 1 页 / 共 5 页
字号:
   \   00000B   74..         MOV     A,#((HalLedSet >> 16) & 0xff)
   \   00000D   02....       LJMP    ?Subroutine10 & 0xFFFF
     95            /* Initialize sleepActive to FALSE */
     96            HalLedStatusControl.sleepActive = FALSE;
     97          #endif /* HAL_LED */
     98          }

   \                                 In segment BANKED_CODE, align 1, keep-with-next
   \                     ?Subroutine10:
   \   000000   12....       LCALL   ?BCALL               ; Banked call to: DPTR()
   \   000003   E4           CLR     A
   \   000004   90....       MOV     DPTR,#(??HalLedStatusControl + 36)
   \                     ??Subroutine10_0:
   \   000007   F0           MOVX    @DPTR,A
   \                     ??Subroutine10_1:
   \   000008   D083         POP     DPH
   \   00000A   D082         POP     DPL
   \   00000C   02....       LJMP    ?BRET
     99          
    100          /***************************************************************************************************
    101           * @fn      HalLedSet
    102           *
    103           * @brief   Tun ON/OFF/TOGGLE given LEDs
    104           *
    105           * @param   led - bit mask value of leds to be turned ON/OFF/TOGGLE
    106           *          mode - BLINK, FLASH, TOGGLE, ON, OFF
    107           * @return  None
    108           ***************************************************************************************************/

   \                                 In segment BANKED_CODE, align 1, keep-with-next
    109          uint8 HalLedSet (uint8 leds, uint8 mode)
   \                     HalLedSet:
    110          {
   \   000000   74F5         MOV     A,#-0xb
   \   000002   12....       LCALL   ?BANKED_ENTER_XDATA
   \   000005                ; Saved register size: 11
   \   000005                ; Auto size: 0
   \   000005   89..         MOV     ?V0 + 0,R1
   \   000007   8A..         MOV     ?V0 + 1,R2
    111          
    112          #if (defined (BLINK_LEDS)) && (HAL_LED == TRUE)
    113            uint8 led;
    114            HalLedControl_t *sts;
    115          
    116            switch (mode)
   \   000009   EA           MOV     A,R2
   \   00000A   12....       LCALL   ?UC_SWITCH_SPARSE
   \                     `?<Jumptable for HalLedSet>_0`:
   \   00000D   01           DB        1
   \   00000E   00           DB        0
   \   00000F   01           DB        1
   \   000010   ....         DW        ??HalLedSet_0
   \   000012   03           DB        3
   \   000013   02           DB        2
   \   000014   ....         DW        ??HalLedSet_1
   \   000016   04           DB        4
   \   000017   ....         DW        ??HalLedSet_2
   \   000019   08           DB        8
   \   00001A   ....         DW        ??HalLedSet_0
   \   00001C   ....         DW        ??HalLedSet_3
    117            {
    118              case HAL_LED_MODE_BLINK:
    119                /* Default blink, 1 time, D% duty cycle */
    120                HalLedBlink (leds, 1, HAL_LED_DEFAULT_DUTY_CYCLE, HAL_LED_DEFAULT_FLASH_TIME);
   \                     ??HalLedSet_1:
   \   00001E                ; Setup parameters for call to function HalLedBlink
   \   00001E   7CE8         MOV     R4,#-0x18
   \   000020   7D03         MOV     R5,#0x3
   \   000022   7B05         MOV     R3,#0x5
   \   000024   7A01         MOV     R2,#0x1
   \                     ??HalLedSet_4:
   \   000026   90....       MOV     DPTR,#(HalLedBlink & 0xffff)
   \   000029   74..         MOV     A,#((HalLedBlink >> 16) & 0xff)
   \   00002B   12....       LCALL   ?BCALL               ; Banked call to: DPTR()
    121                break;
    122          
    123              case HAL_LED_MODE_FLASH:
    124                /* Default flash, N times, D% duty cycle */
    125                HalLedBlink (leds, HAL_LED_DEFAULT_FLASH_COUNT, HAL_LED_DEFAULT_DUTY_CYCLE, HAL_LED_DEFAULT_FLASH_TIME);
    126                break;
    127          
    128              case HAL_LED_MODE_ON:
    129              case HAL_LED_MODE_OFF:
    130              case HAL_LED_MODE_TOGGLE:
    131          
    132                led = HAL_LED_1;
    133                leds &= HAL_LED_ALL;
    134                sts = HalLedStatusControl.HalLedControlTable;
    135          
    136                while (leds)
    137                {
    138                  if (leds & led)
    139                  {
    140                    if (mode != HAL_LED_MODE_TOGGLE)
    141                    {
    142                      sts->mode = mode;  /* ON or OFF */
    143                    }
    144                    else
    145                    {
    146                      sts->mode ^= HAL_LED_MODE_ON;  /* Toggle */
    147                    }
    148                    HalLedOnOff (led, sts->mode);
    149                    leds ^= led;
    150                  }
    151                  led <<= 1;
    152                  sts++;
    153                }
    154                break;
    155          
    156              default:
    157                break;
    158            }
    159          
    160          #elif (HAL_LED == TRUE)
    161            LedOnOff(leds, mode);
    162          #endif /* BLINK_LEDS && HAL_LED   */
    163          
    164            return ( HalLedState );
   \                     ??HalLedSet_3:
   \   00002E   90....       MOV     DPTR,#??HalLedState
   \   000031   E0           MOVX    A,@DPTR
   \   000032   F9           MOV     R1,A
   \   000033   7F03         MOV     R7,#0x3
   \   000035   02....       LJMP    ?BANKED_LEAVE_XDATA
   \                     ??HalLedSet_2:
   \   000038                ; Setup parameters for call to function HalLedBlink
   \   000038   7CE8         MOV     R4,#-0x18
   \   00003A   7D03         MOV     R5,#0x3
   \   00003C   7B05         MOV     R3,#0x5
   \   00003E   7A32         MOV     R2,#0x32
   \   000040   80E4         SJMP    ??HalLedSet_4
   \                     ??HalLedSet_0:
   \   000042   75..01       MOV     ?V0 + 2,#0x1
   \   000045   53..0F       ANL     ?V0 + 0,#0xf
   \   000048   7E..         MOV     R6,#(??HalLedStatusControl & 0xff)
   \   00004A   7F..         MOV     R7,#((??HalLedStatusControl >> 8) & 0xff)
   \   00004C   8022         SJMP    ??HalLedSet_5
   \                     ??HalLedSet_6:
   \   00004E   E0           MOVX    A,@DPTR
   \   00004F   6401         XRL     A,#0x1
   \                     ??HalLedSet_7:
   \   000051   F0           MOVX    @DPTR,A
   \   000052                ; Setup parameters for call to function HalLedOnOff
   \   000052   E0           MOVX    A,@DPTR
   \   000053   FA           MOV     R2,A
   \   000054   A9..         MOV     R1,?V0 + 2
   \   000056   90....       MOV     DPTR,#(HalLedOnOff & 0xffff)
   \   000059   74..         MOV     A,#((HalLedOnOff >> 16) & 0xff)
   \   00005B   12....       LCALL   ?BCALL               ; Banked call to: DPTR()
   \   00005E   E5..         MOV     A,?V0 + 2
   \   000060   62..         XRL     ?V0 + 0,A
   \                     ??HalLedSet_8:
   \   000062   E5..         MOV     A,?V0 + 2
   \   000064   C3           CLR     C
   \   000065   33           RLC     A
   \   000066   F5..         MOV     ?V0 + 2,A
   \   000068   EE           MOV     A,R6
   \   000069   2409         ADD     A,#0x9
   \   00006B   FE           MOV     R6,A
   \   00006C   EF           MOV     A,R7
   \   00006D   3400         ADDC    A,#0x0
   \   00006F   FF           MOV     R7,A
   \                     ??HalLedSet_5:
   \   000070   E5..         MOV     A,?V0 + 0
   \   000072   60BA         JZ      ??HalLedSet_3
   \   000074   E5..         MOV     A,?V0 + 2
   \   000076   55..         ANL     A,?V0 + 0
   \   000078   60E8         JZ      ??HalLedSet_8
   \   00007A   7408         MOV     A,#0x8
   \   00007C   65..         XRL     A,?V0 + 1
   \   00007E   8E82         MOV     DPL,R6
   \   000080   8F83         MOV     DPH,R7
   \   000082   60CA         JZ      ??HalLedSet_6
   \   000084   E5..         MOV     A,?V0 + 1
   \   000086   80C9         SJMP    ??HalLedSet_7
    165          
    166          }
    167          
    168          /***************************************************************************************************
    169           * @fn      HalLedBlink
    170           *
    171           * @brief   Blink the leds
    172           *
    173           * @param   leds       - bit mask value of leds to be blinked
    174           *          numBlinks  - number of blinks
    175           *          percent    - the percentage in each period where the led
    176           *                       will be on
    177           *          period     - length of each cycle in milliseconds
    178           *
    179           * @return  None
    180           ***************************************************************************************************/

   \                                 In segment BANKED_CODE, align 1, keep-with-next
    181          void HalLedBlink (uint8 leds, uint8 numBlinks, uint8 percent, uint16 period)
   \                     HalLedBlink:
    182          {
   \   000000   74F0         MOV     A,#-0x10
   \   000002   12....       LCALL   ?BANKED_ENTER_XDATA
   \   000005                ; Saved register size: 16
   \   000005                ; Auto size: 4
   \   000005   74FC         MOV     A,#-0x4
   \   000007   12....       LCALL   ?ALLOC_XSTACK8
   \   00000A   7401         MOV     A,#0x1
   \   00000C   12....       LCALL   ?XSTACK_DISP0_8
   \   00000F   EA           MOV     A,R2
   \   000010   F0           MOVX    @DPTR,A
   \   000011   EB           MOV     A,R3
   \   000012   85..82       MOV     DPL,?XSP + 0
   \   000015   85..83       MOV     DPH,?XSP + 1
   \   000018   F0           MOVX    @DPTR,A
   \   000019   7402         MOV     A,#0x2
   \   00001B   12....       LCALL   ?XSTACK_DISP0_8
   \   00001E   EC           MOV     A,R4
   \   00001F   F0           MOVX    @DPTR,A
   \   000020   A3           INC     DPTR
   \   000021   ED           MOV     A,R5
   \   000022   F0           MOVX    @DPTR,A
   \   000023   89..         MOV     ?V0 + 0,R1
    183          #if (defined (BLINK_LEDS)) && (HAL_LED == TRUE)
    184            uint8 led;
    185            HalLedControl_t *sts;
    186          
    187            if (leds && percent && period)
   \   000025   E9           MOV     A,R1
   \   000026   7003         JNZ     $+5
   \   000028   02....       LJMP    ??HalLedBlink_0 & 0xFFFF
   \   00002B   85..82       MOV     DPL,?XSP + 0
   \   00002E   85..83       MOV     DPH,?XSP + 1
   \   000031   E0           MOVX    A,@DPTR
   \   000032   7003         JNZ     $+5
   \   000034   02....       LJMP    ??HalLedBlink_0 & 0xFFFF
   \   000037   7402         MOV     A,#0x2
   \   000039   12....       LCALL   ?XSTACK_DISP0_8
   \   00003C   E0           MOVX    A,@DPTR
   \   00003D   7002         JNZ     ??HalLedBlink_1
   \   00003F   A3           INC     DPTR
   \   000040   E0           MOVX    A,@DPTR
   \                     ??HalLedBlink_1:
   \   000041   7003         JNZ     $+5
   \   000043   02....       LJMP    ??HalLedBlink_0 & 0xFFFF
    188            {
    189              if (percent < 100)
   \   000046   85..82       MOV     DPL,?XSP + 0
   \   000049   85..83       MOV     DPH,?XSP + 1
   \   00004C   E0           MOVX    A,@DPTR
   \   00004D   C3           CLR     C
   \   00004E   9464         SUBB    A,#0x64
   \   000050   4003         JC      $+5
   \   000052   02....       LJMP    ??HalLedBlink_2 & 0xFFFF
    190              {

⌨️ 快捷键说明

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