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

📄 zmain.lst

📁 cc2430应用实例
💻 LST
📖 第 1 页 / 共 4 页
字号:
    196            // then based on the count value, determine if the device is ready or not
    197            while ( vdd_passed_count < MAX_VDD_SAMPLES )
    198            {
    199              if ( HalAdcCheckVdd (ZMAIN_VDD_LIMIT) )
    200              {
    201                vdd_passed_count++;    // Keep track # times Vdd passes in a row
   \                     ??zmain_vdd_check_2:
   \   000019   0E           INC     R6
    202                MicroWait (10000);     // Wait 10ms to try again 
   \   00001A                ; Setup parameters for call to function Onboard_wait
   \   00001A   7A10         MOV     R2,#0x10
   \   00001C   7B27         MOV     R3,#0x27
   \   00001E   90....       MOV     DPTR,#(Onboard_wait & 0xffff)
   \   000021   74..         MOV     A,#((Onboard_wait >> 16) & 0xff)
   \   000023   12....       LCALL   ?BCALL               ; Banked call to: DPTR()
    203              }
    204              else
    205              {
    206                vdd_passed_count = 0;  // Reset passed counter
    207                MicroWait (50000);     // Wait 50ms  
    208                MicroWait (50000);     // Wait another 50ms to try again       
    209              }
    210          
    211              /* toggle LED1 and LED2 */
    212              if (vdd_passed_count == 0)
   \   000026   EE           MOV     A,R6
   \   000027   6029         JZ      ??zmain_vdd_check_3
   \   000029   C3           CLR     C
   \   00002A   9403         SUBB    A,#0x3
   \   00002C   5043         JNC     ??zmain_vdd_check_4
   \                     ??zmain_vdd_check_1:
   \   00002E                ; Setup parameters for call to function HalAdcCheckVdd
   \   00002E   7904         MOV     R1,#0x4
   \   000030   90....       MOV     DPTR,#(HalAdcCheckVdd & 0xffff)
   \   000033   74..         MOV     A,#((HalAdcCheckVdd >> 16) & 0xff)
   \   000035   12....       LCALL   ?BCALL               ; Banked call to: DPTR()
   \   000038   E9           MOV     A,R1
   \   000039   70DE         JNZ     ??zmain_vdd_check_2
   \   00003B   7E00         MOV     R6,#0x0
   \   00003D                ; Setup parameters for call to function Onboard_wait
   \   00003D   7A50         MOV     R2,#0x50
   \   00003F   7BC3         MOV     R3,#-0x3d
   \   000041   90....       MOV     DPTR,#(Onboard_wait & 0xffff)
   \   000044   74..         MOV     A,#((Onboard_wait >> 16) & 0xff)
   \   000046   12....       LCALL   ?BCALL               ; Banked call to: DPTR()
   \   000049                ; Setup parameters for call to function Onboard_wait
   \   000049   7A50         MOV     R2,#0x50
   \   00004B   7BC3         MOV     R3,#-0x3d
   \   00004D   74..         MOV     A,#((Onboard_wait >> 16) & 0xff)
   \   00004F   12....       LCALL   ?BCALL               ; Banked call to: DPTR()
    213              {
    214                if ((toggle = !(toggle)))
   \                     ??zmain_vdd_check_3:
   \   000052   EF           MOV     A,R7
   \   000053   700A         JNZ     ??zmain_vdd_check_5
   \   000055   7F01         MOV     R7,#0x1
    215                  HAL_TOGGLE_LED1();
   \   000057   A290         MOV     C,0x90.0
   \   000059   400E         JC      ??zmain_vdd_check_6
   \   00005B   D290         SETB    0x90.0
   \   00005D   80CF         SJMP    ??zmain_vdd_check_1
   \                     ??zmain_vdd_check_5:
   \   00005F   7F00         MOV     R7,#0x0
    216                else
    217                  HAL_TOGGLE_LED2();
   \   000061   A291         MOV     C,0x90.1
   \   000063   4008         JC      ??zmain_vdd_check_7
   \   000065   D291         SETB    0x90.1
   \   000067   80C5         SJMP    ??zmain_vdd_check_1
   \                     ??zmain_vdd_check_6:
   \   000069   C290         CLR     0x90.0
   \   00006B   80C1         SJMP    ??zmain_vdd_check_1
   \                     ??zmain_vdd_check_7:
   \   00006D   C291         CLR     0x90.1
   \   00006F   80BD         SJMP    ??zmain_vdd_check_1
    218              }
    219            }
    220          
    221            /* turn off LED1 */
    222            HAL_TURN_OFF_LED1();
   \                     ??zmain_vdd_check_4:
   \   000071   D290         SETB    0x90.0
    223            HAL_TURN_OFF_LED2();
   \   000073   D291         SETB    0x90.1
    224          }
   \   000075   7F01         MOV     R7,#0x1
   \   000077   02....       LJMP    ?FUNC_LEAVE_XDATA
    225          
    226          /*********************************************************************
    227           * @fn      zmain_ext_addr
    228           * @brief   Makes extended address if none exists.
    229           * @return  none
    230           *********************************************************************/

   \                                 In segment NEAR_CODE, align 1, keep-with-next
    231          static ZSEG void zmain_ext_addr( void )
   \                     ??zmain_ext_addr:
    232          {
   \   000000   74F7         MOV     A,#-0x9
   \   000002   12....       LCALL   ?FUNC_ENTER_XDATA
   \   000005                ; Saved register size: 9
   \   000005                ; Auto size: 0
    233            uint8 i;
    234            uint8 led;
    235            uint8 tmp;
    236            uint8 *xad;
    237            uint16 AtoD;
    238          
    239            // Initialize extended address in NV
    240            osal_nv_item_init( ZCD_NV_EXTADDR, Z_EXTADDR_LEN, NULL );
   \   000005                ; Setup parameters for call to function osal_nv_item_init
   \   000005   75..00       MOV     ?V0 + 0,#0x0
   \   000008   75..00       MOV     ?V0 + 1,#0x0
   \   00000B   78..         MOV     R0,#?V0 + 0
   \   00000D   12....       LCALL   ?PUSH_XSTACK_I_TWO
   \   000010   7C08         MOV     R4,#0x8
   \   000012   7D00         MOV     R5,#0x0
   \   000014   7A01         MOV     R2,#0x1
   \   000016   7B00         MOV     R3,#0x0
   \   000018   90....       MOV     DPTR,#(osal_nv_item_init & 0xffff)
   \   00001B   74..         MOV     A,#((osal_nv_item_init >> 16) & 0xff)
   \   00001D   12....       LCALL   ?BCALL               ; Banked call to: DPTR()
   \   000020   7402         MOV     A,#0x2
   \   000022   12....       LCALL   ?DEALLOC_XSTACK8
    241            osal_nv_read( ZCD_NV_EXTADDR, 0, Z_EXTADDR_LEN, &aExtendedAddress );
   \   000025                ; Setup parameters for call to function osal_nv_read
   \   000025   75....       MOV     ?V0 + 0,#(aExtendedAddress & 0xff)
   \   000028   75....       MOV     ?V0 + 1,#((aExtendedAddress >> 8) & 0xff)
   \   00002B   78..         MOV     R0,#?V0 + 0
   \   00002D   12....       LCALL   ?PUSH_XSTACK_I_TWO
   \   000030   75..08       MOV     ?V0 + 0,#0x8
   \   000033   75..00       MOV     ?V0 + 1,#0x0
   \   000036   78..         MOV     R0,#?V0 + 0
   \   000038   12....       LCALL   ?PUSH_XSTACK_I_TWO
   \   00003B   7C00         MOV     R4,#0x0
   \   00003D   7D00         MOV     R5,#0x0
   \   00003F   7A01         MOV     R2,#0x1
   \   000041   7B00         MOV     R3,#0x0
   \   000043   90....       MOV     DPTR,#(osal_nv_read & 0xffff)
   \   000046   74..         MOV     A,#((osal_nv_read >> 16) & 0xff)
   \   000048   12....       LCALL   ?BCALL               ; Banked call to: DPTR()
   \   00004B   7404         MOV     A,#0x4
   \   00004D   12....       LCALL   ?DEALLOC_XSTACK8
    242          
    243            // Check for uninitialized value (erased EEPROM = 0xFF)
    244            xad = (uint8*)&aExtendedAddress;
   \   000050   78..         MOV     R0,#(aExtendedAddress & 0xff)
   \   000052   79..         MOV     R1,#((aExtendedAddress >> 8) & 0xff)
    245            for ( i = 0; i < Z_EXTADDR_LEN; i++ )
   \   000054   7C00         MOV     R4,#0x0
    246              if ( *xad++ != 0xFF ) return;
   \                     ??zmain_ext_addr_1:
   \   000056   E8           MOV     A,R0
   \   000057   FA           MOV     R2,A
   \   000058   E9           MOV     A,R1
   \   000059   FB           MOV     R3,A
   \   00005A   8A82         MOV     DPL,R2
   \   00005C   8B83         MOV     DPH,R3
   \   00005E   A3           INC     DPTR
   \   00005F   A882         MOV     R0,DPL
   \   000061   A983         MOV     R1,DPH
   \   000063   8A82         MOV     DPL,R2
   \   000065   8B83         MOV     DPH,R3
   \   000067   E0           MOVX    A,@DPTR
   \   000068   64FF         XRL     A,#0xff
   \   00006A   6003         JZ      $+5
   \   00006C   02....       LJMP    ??zmain_ext_addr_2
   \   00006F   0C           INC     R4
   \   000070   EC           MOV     A,R4
   \   000071   C3           CLR     C
   \   000072   9408         SUBB    A,#0x8
   \   000074   40E0         JC      ??zmain_ext_addr_1
    247          
    248          #ifdef ZDO_COORDINATOR
    249            tmp = 0x10;
   \   000076   7B10         MOV     R3,#0x10
    250          #else
    251            tmp = 0x20;
    252          #endif
    253            // Initialize with a simple pattern
    254            xad = (uint8*)&aExtendedAddress;
   \   000078   78..         MOV     R0,#(aExtendedAddress & 0xff)
   \   00007A   79..         MOV     R1,#((aExtendedAddress >> 8) & 0xff)
    255            for ( i = 0; i < Z_EXTADDR_LEN; i++ )
   \   00007C   7A08         MOV     R2,#0x8
    256              *xad++ = tmp++;
   \                     ??zmain_ext_addr_3:
   \   00007E   EB           MOV     A,R3
   \   00007F   8882         MOV     DPL,R0
   \   000081   8983         MOV     DPH,R1
   \   000083   F0           MOVX    @DPTR,A
   \   000084   0B           INC     R3
   \   000085   A3           INC     DPTR
   \   000086   A882         MOV     R0,DPL
   \   000088   A983         MOV     R1,DPH
   \   00008A   1A           DEC     R2
   \   00008B   EA           MOV     A,R2
   \   00008C   70F0         JNZ     ??zmain_ext_addr_3
    257          
    258            // Flash LED1 until user hits SW5
    259            led = HAL_LED_MODE_OFF;
   \   00008E   75..00       MOV     ?V0 + 0,#0x0
   \   000091   8027         SJMP    ??zmain_ext_addr_4
    260            while ( HAL_KEY_SW_5 != HalKeyRead() )
    261            {
    262              MicroWait( 62500 );
   \                     ??zmain_ext_addr_5:
   \   000093                ; Setup parameters for call to function Onboard_wait
   \   000093   7A24         MOV     R2,#0x24
   \   000095   7BF4         MOV     R3,#-0xc
   \   000097   90....       MOV     DPTR,#(Onboard_wait & 0xffff)
   \   00009A   74..         MOV     A,#((Onboard_wait >> 16) & 0xff)
   \   00009C   12....       LCALL   ?BCALL               ; Banked call to: DPTR()
    263              HalLedSet( HAL_LED_1, led^=HAL_LED_MODE_ON );  // Toggle the LED
   \   00009F   63..01       XRL     ?V0 + 0,#0x1
   \   0000A2                ; Setup parameters for call to function HalLedSet
   \   0000A2   AA..         MOV     R2,?V0 + 0
   \   0000A4   7901         MOV     R1,#0x1
   \   0000A6   90....       MOV     DPTR,#(HalLedSet & 0xffff)
   \   0000A9   74..         MOV     A,#((HalLedSet >> 16) & 0xff)
   \   0000AB   12....       LCALL   ?BCALL               ; Banked call to: DPTR()
    264              MicroWait( 62500 );
   \   0000AE                ; Setup parameters for call to function Onboard_wait
   \   0000AE   7A24         MOV     R2,#0x24
   \   0000B0   7BF4         MOV     R3,#-0xc
   \   0000B2   90....       MOV     DPTR,#(Onboard_wait & 0xffff)

⌨️ 快捷键说明

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