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

📄 zmain.lst

📁 cc2430讀取短地址程式
💻 LST
📖 第 1 页 / 共 3 页
字号:
    228                  //HAL_TOGGLE_LED2();
    229              }
    230            }
    231          
    232            /* turn off LED1 */
    233            HAL_TURN_OFF_LED1();
   \                     ??zmain_vdd_check_7:
   \   00007E   D290         SETB    0x90.0
    234            HAL_TURN_OFF_LED2();
   \   000080   D293         SETB    0x90.3
    235          }
   \   000082   7F01         MOV     R7,#0x1
   \   000084   02....       LJMP    ?FUNC_LEAVE_XDATA
    236          
    237          /*********************************************************************
    238           * @fn      zmain_ext_addr
    239           * @brief   Makes extended address if none exists.
    240           * @return  none
    241           *********************************************************************/

   \                                 In segment NEAR_CODE, align 1, keep-with-next
    242          static ZSEG void zmain_ext_addr( void )
   \                     ??zmain_ext_addr:
    243          {
   \   000000   74F7         MOV     A,#-0x9
   \   000002   12....       LCALL   ?FUNC_ENTER_XDATA
   \   000005                ; Saved register size: 9
   \   000005                ; Auto size: 0
    244            uint8 i;
    245            uint8 led;
    246            uint8 tmp;
    247            uint8 *xad;
    248            uint16 AtoD;
    249          
    250            // Initialize extended address in NV
    251            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
    252            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
    253          
    254            // Check for uninitialized value (erased EEPROM = 0xFF)
    255            xad = (uint8*)&aExtendedAddress;
   \   000050   78..         MOV     R0,#(aExtendedAddress & 0xff)
   \   000052   79..         MOV     R1,#((aExtendedAddress >> 8) & 0xff)
    256            for ( i = 0; i < Z_EXTADDR_LEN; i++ )
   \   000054   7C00         MOV     R4,#0x0
    257              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   7041         JNZ     ??zmain_ext_addr_2
   \   00006C   0C           INC     R4
   \   00006D   EC           MOV     A,R4
   \   00006E   C3           CLR     C
   \   00006F   9408         SUBB    A,#0x8
   \   000071   40E3         JC      ??zmain_ext_addr_1
    258          
    259          #ifdef ZDO_COORDINATOR
    260            tmp = 0x10;
    261          #else
    262            tmp = 0x20;
   \   000073   7B20         MOV     R3,#0x20
    263          #endif
    264            // Initialize with a simple pattern
    265            xad = (uint8*)&aExtendedAddress;
   \   000075   78..         MOV     R0,#(aExtendedAddress & 0xff)
   \   000077   79..         MOV     R1,#((aExtendedAddress >> 8) & 0xff)
    266            for ( i = 0; i < Z_EXTADDR_LEN; i++ )
   \   000079   7A08         MOV     R2,#0x8
    267              *xad++ = tmp++;
   \                     ??zmain_ext_addr_3:
   \   00007B   EB           MOV     A,R3
   \   00007C   8882         MOV     DPL,R0
   \   00007E   8983         MOV     DPH,R1
   \   000080   F0           MOVX    @DPTR,A
   \   000081   0B           INC     R3
   \   000082   A3           INC     DPTR
   \   000083   A882         MOV     R0,DPL
   \   000085   A983         MOV     R1,DPH
   \   000087   1A           DEC     R2
   \   000088   EA           MOV     A,R2
   \   000089   70F0         JNZ     ??zmain_ext_addr_3
    268          
    269            // Flash LED1 until user hits SW5
    270            led = HAL_LED_MODE_OFF;
    271            /*while ( HAL_KEY_SW_5 != HalKeyRead() )
    272            {
    273              MicroWait( 62500 );
    274              HalLedSet( HAL_LED_1, led^=HAL_LED_MODE_ON );  // Toggle the LED
    275              MicroWait( 62500 );
    276            }*/
    277            HalLedSet( HAL_LED_1, HAL_LED_MODE_OFF );
   \   00008B                ; Setup parameters for call to function HalLedSet
   \   00008B   7A00         MOV     R2,#0x0
   \   00008D   7901         MOV     R1,#0x1
   \   00008F   90....       MOV     DPTR,#(HalLedSet & 0xffff)
   \   000092   74..         MOV     A,#((HalLedSet >> 16) & 0xff)
   \   000094   12....       LCALL   ?BCALL               ; Banked call to: DPTR()
    278          
    279            // Plug AtoD data into lower bytes
    280            AtoD = HalAdcRead (HAL_ADC_CHANNEL_7, HAL_ADC_RESOLUTION_10);
   \   000097                ; Setup parameters for call to function HalAdcRead
   \   000097   7A02         MOV     R2,#0x2
   \   000099   7907         MOV     R1,#0x7
   \   00009B   90....       MOV     DPTR,#(HalAdcRead & 0xffff)
   \   00009E   74..         MOV     A,#((HalAdcRead >> 16) & 0xff)
   \   0000A0   12....       LCALL   ?BCALL               ; Banked call to: DPTR()
    281            xad = (uint8*)&aExtendedAddress;
    282            *xad++ = LO_UINT16( AtoD );
   \   0000A3   EA           MOV     A,R2
   \   0000A4   90....       MOV     DPTR,#aExtendedAddress
   \   0000A7   F0           MOVX    @DPTR,A
    283            *xad = HI_UINT16( AtoD );
   \   0000A8   EB           MOV     A,R3
   \   0000A9   90....       MOV     DPTR,#(aExtendedAddress + 1)
   \   0000AC   F0           MOVX    @DPTR,A
    284          
    285          #if !defined( ZTOOL_PORT ) || defined( ZPORT ) || defined( NV_RESTORE )
    286            // If no support for Z-Tool serial I/O,
    287            // Write temporary 64-bit address to NV
    288            osal_nv_write( ZCD_NV_EXTADDR, 0, Z_EXTADDR_LEN, &aExtendedAddress );
    289          #endif
    290          }
   \                     ??zmain_ext_addr_2:
   \   0000AD   7F02         MOV     R7,#0x2
   \   0000AF   02....       LJMP    ?FUNC_LEAVE_XDATA

   \                                 In segment NEAR_CODE, align 1, keep-with-next
   \                     ?Subroutine0:
   \   000000   E582         MOV     A,DPL
   \   000002   24FF         ADD     A,#-0x1
   \   000004   F582         MOV     DPL,A
   \   000006   E583         MOV     A,DPH
   \   000008   34FF         ADDC    A,#-0x1
   \   00000A   F583         MOV     DPH,A
   \   00000C   22           RET

   \                                 In segment XSP, align 1

   \                                 In segment SFR_AN, at 0x90
   \   union <unnamed> volatile __sfr _A_P1
   \                     _A_P1:
   \   000000                DS 1
    291          
    292          /*********************************************************************
    293           * @fn      zmain_dev_info
    294           * @brief   Gets or makes extended address.
    295           * @return  none
    296           *********************************************************************/
    297          static ZSEG void zmain_dev_info ( void )
    298          {
    299          #ifdef LCD_SUPPORTED
    300            uint8 i;
    301            uint8 ch;
    302            uint8 *xad;
    303            unsigned char lcd_buf[18];
    304          
    305            // Display the extended address
    306            xad = (uint8*)&aExtendedAddress + Z_EXTADDR_LEN - 1;
    307            for ( i = 0; i < Z_EXTADDR_LEN*2; xad-- ) {
    308              ch = (*xad >> 4) & 0x0F;
    309              lcd_buf[i++] = ch + (( ch < 10 ) ? '0' : '7');
    310              ch = *xad & 0x0F;
    311              lcd_buf[i++] = ch + (( ch < 10 ) ? '0' : '7');
    312            }
    313            lcd_buf[Z_EXTADDR_LEN*2] = '\0';
    314            HalLcdWriteString( "IEEE Address:", HAL_LCD_LINE_1 );
    315            HalLcdWriteString( (char*)lcd_buf, HAL_LCD_LINE_2 );
    316          #endif // LCD
    317          }
    318          
    319          /*********************************************************************
    320           * @fn      zmain_ram_init
    321           * @brief   Initialize ram for stack "high-water-mark" observations.
    322           * @return  none
    323           *********************************************************************/
    324          static ZSEG void zmain_ram_init( void )
    325          {
    326            uint8 *end;
    327            uint8 *ptr;
    328          
    329            // Initialize the call (parameter) stack
    330            end = (uint8*)CSTK_BEG;  // Lower end
    331            ptr = (uint8*)(*( __idata uint16*)(CSTK_PTR));  // Upper end
    332            while ( --ptr > end )
    333              *ptr = STACK_INIT_VALUE;
    334          
    335            // Initialize the return (address) stack
    336            ptr = (uint8*)RSTK_END - 1;  // Upper end
    337            while ( --ptr > (uint8*)SP )
    338              *(__idata uint8*)ptr = STACK_INIT_VALUE;
    339          }
    340          
    341          #ifdef LCD_SUPPORTED
    342          /*********************************************************************
    343           * @fn      zmain_lcd_init
    344           * @brief   Initialize LCD at start up.
    345           * @return  none
    346           *********************************************************************/
    347          static ZSEG void zmain_lcd_init ( void )
    348          {
    349          #ifdef LCD_SD
    350           // if ( LcdLine1 == NULL )
    351            {
    352              HalLcdWriteString( "Figure8 Wireless", HAL_LCD_LINE_1 );
    353          
    354          #if defined( MT_MAC_FUNC )
    355          #if defined( ZDO_COORDINATOR )
    356                HalLcdWriteString( "MAC-MT Coord", HAL_LCD_LINE_2 );
    357          #else
    358                HalLcdWriteString( "MAC-MT Device", HAL_LCD_LINE_2 );
    359          #endif // ZDO
    360          #elif defined( MT_NWK_FUNC )
    361          #if defined( ZDO_COORDINATOR )
    362                HalLcdWriteString( "NWK Coordinator", HAL_LCD_LINE_2 );
    363          #else
    364                HalLcdWriteString( "NWK Device", HAL_LCD_LINE_2 );
    365          #endif // ZDO
    366          #endif // MT_FUNC
    367            }
    368          #endif // LCD_SD
    369          }
    370          
    371          #endif
    372          
    373          /*TIMER3_INTERRUPT()
    374          {
    375            EA = 0;
    376            P1_2 = 1;                       //2430狾

⌨️ 快捷键说明

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