zmain.s51

来自「cc2430讀取短地址程式」· S51 代码 · 共 1,116 行 · 第 1/3 页

S51
1,116
字号
??zmain_vdd_check_4:
        INC	R6
//  211       MicroWait (10000);     // Wait 10ms to try again
        ; Setup parameters for call to function Onboard_wait
        MOV	R2,#0x10
        MOV	R3,#0x27
        MOV	DPTR,#(Onboard_wait & 0xffff)
        MOV	A,#((Onboard_wait >> 16) & 0xff)
        LCALL	?BCALL               ; Banked call to: DPTR()
//  212       MicroWait (50000);
        ; Setup parameters for call to function Onboard_wait
        MOV	R2,#0x50
        MOV	R3,#-0x3d
        MOV	A,#((Onboard_wait >> 16) & 0xff)
        LCALL	?BCALL               ; Banked call to: DPTR()
//  213     }
//  214     else
//  215     {
//  216       HAL_TOGGLE_LED1();
//  217       vdd_passed_count = 0;  // Reset passed counter
//  218       MicroWait (50000);     // Wait 50ms
//  219       MicroWait (50000);     // Wait another 50ms to try again
//  220     }
//  221 
//  222     /* toggle LED1 and LED2 */
//  223     if (vdd_passed_count == 0)
        MOV	A,R6
        JZ	??zmain_vdd_check_5
??zmain_vdd_check_6:
        MOV	A,R6
        CLR	C
        SUBB	A,#0x3
        JNC	??zmain_vdd_check_7
??zmain_vdd_check_1:
        ; Setup parameters for call to function HalAdcCheckVdd
        MOV	R1,#0x4
        MOV	DPTR,#(HalAdcCheckVdd & 0xffff)
        MOV	A,#((HalAdcCheckVdd >> 16) & 0xff)
        LCALL	?BCALL               ; Banked call to: DPTR()
        MOV	A,R1
        MOV	C,0x90.0
        JNZ	??zmain_vdd_check_2
        JNC	??zmain_vdd_check_8
        CLR	0x90.0
        SJMP	??zmain_vdd_check_9
??zmain_vdd_check_8:
        SETB	0x90.0
??zmain_vdd_check_9:
        MOV	R6,#0x0
        ; Setup parameters for call to function Onboard_wait
        MOV	R2,#0x50
        MOV	R3,#-0x3d
        MOV	DPTR,#(Onboard_wait & 0xffff)
        MOV	A,#((Onboard_wait >> 16) & 0xff)
        LCALL	?BCALL               ; Banked call to: DPTR()
        ; Setup parameters for call to function Onboard_wait
        MOV	R2,#0x50
        MOV	R3,#-0x3d
        MOV	A,#((Onboard_wait >> 16) & 0xff)
        LCALL	?BCALL               ; Banked call to: DPTR()
//  224     {
//  225       if ((toggle = !(toggle)))
??zmain_vdd_check_5:
        MOV	A,R7
        JNZ	??zmain_vdd_check_10
        MOV	R7,#0x1
//  226         HAL_TOGGLE_LED1();
        MOV	C,0x90.0
        JC	??zmain_vdd_check_11
        SETB	0x90.0
        SJMP	??zmain_vdd_check_1
??zmain_vdd_check_10:
        MOV	R7,#0x0
        SJMP	??zmain_vdd_check_6
??zmain_vdd_check_11:
        CLR	0x90.0
        SJMP	??zmain_vdd_check_1
//  227       else;
//  228         //HAL_TOGGLE_LED2();
//  229     }
//  230   }
//  231 
//  232   /* turn off LED1 */
//  233   HAL_TURN_OFF_LED1();
??zmain_vdd_check_7:
        SETB	0x90.0
//  234   HAL_TURN_OFF_LED2();
        SETB	0x90.3
//  235 }
        MOV	R7,#0x1
        LJMP	?FUNC_LEAVE_XDATA
        CFI EndBlock cfiBlock4
//  236 
//  237 /*********************************************************************
//  238  * @fn      zmain_ext_addr
//  239  * @brief   Makes extended address if none exists.
//  240  * @return  none
//  241  *********************************************************************/

        RSEG NEAR_CODE:CODE:NOROOT(0)
//  242 static ZSEG void zmain_ext_addr( void )
??zmain_ext_addr:
        CFI Block cfiBlock5 Using cfiCommon0
        CFI Function ??zmain_ext_addr
//  243 {
        FUNCALL ??zmain_ext_addr, osal_nv_item_init
        LOCFRAME XSTACK, 11, STACK
        ARGFRAME XSTACK, 11, STACK
        FUNCALL ??zmain_ext_addr, osal_nv_read
        LOCFRAME XSTACK, 13, STACK
        ARGFRAME XSTACK, 13, STACK
        FUNCALL ??zmain_ext_addr, HalLedSet
        LOCFRAME XSTACK, 9, STACK
        ARGFRAME XSTACK, 9, STACK
        FUNCALL ??zmain_ext_addr, HalAdcRead
        LOCFRAME XSTACK, 9, STACK
        ARGFRAME XSTACK, 9, STACK
        MOV	A,#-0x9
        LCALL	?FUNC_ENTER_XDATA
        CFI DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1)))
        CFI DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2)))
        CFI ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-3)))
        CFI ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-4)))
        CFI R7 load(1, XDATA, add(CFA_XSP16, literal(-5)))
        CFI V1 load(1, XDATA, add(CFA_XSP16, literal(-6)))
        CFI V0 load(1, XDATA, add(CFA_XSP16, literal(-7)))
        CFI VB load(1, XDATA, add(CFA_XSP16, literal(-8)))
        CFI R6 load(1, XDATA, add(CFA_XSP16, literal(-9)))
        CFI CFA_SP SP+0
        CFI CFA_XSP16 add(XSP16, 9)
        ; Saved register size: 9
        ; 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 );
        ; Setup parameters for call to function osal_nv_item_init
        MOV	?V0 + 0,#0x0
        MOV	?V0 + 1,#0x0
        MOV	R0,#?V0 + 0
        LCALL	?PUSH_XSTACK_I_TWO
        CFI CFA_XSP16 add(XSP16, 11)
        MOV	R4,#0x8
        MOV	R5,#0x0
        MOV	R2,#0x1
        MOV	R3,#0x0
        MOV	DPTR,#(osal_nv_item_init & 0xffff)
        MOV	A,#((osal_nv_item_init >> 16) & 0xff)
        LCALL	?BCALL               ; Banked call to: DPTR()
        MOV	A,#0x2
        LCALL	?DEALLOC_XSTACK8
        CFI CFA_XSP16 add(XSP16, 9)
//  252   osal_nv_read( ZCD_NV_EXTADDR, 0, Z_EXTADDR_LEN, &aExtendedAddress );
        ; Setup parameters for call to function osal_nv_read
        MOV	?V0 + 0,#(aExtendedAddress & 0xff)
        MOV	?V0 + 1,#((aExtendedAddress >> 8) & 0xff)
        MOV	R0,#?V0 + 0
        LCALL	?PUSH_XSTACK_I_TWO
        CFI CFA_XSP16 add(XSP16, 11)
        MOV	?V0 + 0,#0x8
        MOV	?V0 + 1,#0x0
        MOV	R0,#?V0 + 0
        LCALL	?PUSH_XSTACK_I_TWO
        CFI CFA_XSP16 add(XSP16, 13)
        MOV	R4,#0x0
        MOV	R5,#0x0
        MOV	R2,#0x1
        MOV	R3,#0x0
        MOV	DPTR,#(osal_nv_read & 0xffff)
        MOV	A,#((osal_nv_read >> 16) & 0xff)
        LCALL	?BCALL               ; Banked call to: DPTR()
        MOV	A,#0x4
        LCALL	?DEALLOC_XSTACK8
        CFI CFA_XSP16 add(XSP16, 9)
//  253 
//  254   // Check for uninitialized value (erased EEPROM = 0xFF)
//  255   xad = (uint8*)&aExtendedAddress;
        MOV	R0,#(aExtendedAddress & 0xff)
        MOV	R1,#((aExtendedAddress >> 8) & 0xff)
//  256   for ( i = 0; i < Z_EXTADDR_LEN; i++ )
        MOV	R4,#0x0
//  257     if ( *xad++ != 0xFF ) return;
??zmain_ext_addr_1:
        MOV	A,R0
        MOV	R2,A
        MOV	A,R1
        MOV	R3,A
        MOV	DPL,R2
        MOV	DPH,R3
        INC	DPTR
        MOV	R0,DPL
        MOV	R1,DPH
        MOV	DPL,R2
        MOV	DPH,R3
        MOVX	A,@DPTR
        XRL	A,#0xff
        JNZ	??zmain_ext_addr_2
        INC	R4
        MOV	A,R4
        CLR	C
        SUBB	A,#0x8
        JC	??zmain_ext_addr_1
//  258 
//  259 #ifdef ZDO_COORDINATOR
//  260   tmp = 0x10;
//  261 #else
//  262   tmp = 0x20;
        MOV	R3,#0x20
//  263 #endif
//  264   // Initialize with a simple pattern
//  265   xad = (uint8*)&aExtendedAddress;
        MOV	R0,#(aExtendedAddress & 0xff)
        MOV	R1,#((aExtendedAddress >> 8) & 0xff)
//  266   for ( i = 0; i < Z_EXTADDR_LEN; i++ )
        MOV	R2,#0x8
//  267     *xad++ = tmp++;
??zmain_ext_addr_3:
        MOV	A,R3
        MOV	DPL,R0
        MOV	DPH,R1
        MOVX	@DPTR,A
        INC	R3
        INC	DPTR
        MOV	R0,DPL
        MOV	R1,DPH
        DEC	R2
        MOV	A,R2
        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 );
        ; Setup parameters for call to function HalLedSet
        MOV	R2,#0x0
        MOV	R1,#0x1
        MOV	DPTR,#(HalLedSet & 0xffff)
        MOV	A,#((HalLedSet >> 16) & 0xff)
        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);
        ; Setup parameters for call to function HalAdcRead
        MOV	R2,#0x2
        MOV	R1,#0x7
        MOV	DPTR,#(HalAdcRead & 0xffff)
        MOV	A,#((HalAdcRead >> 16) & 0xff)
        LCALL	?BCALL               ; Banked call to: DPTR()
//  281   xad = (uint8*)&aExtendedAddress;
//  282   *xad++ = LO_UINT16( AtoD );
        MOV	A,R2
        MOV	DPTR,#aExtendedAddress
        MOVX	@DPTR,A
//  283   *xad = HI_UINT16( AtoD );
        MOV	A,R3
        MOV	DPTR,#(aExtendedAddress + 1)
        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:
        MOV	R7,#0x2
        LJMP	?FUNC_LEAVE_XDATA
        CFI EndBlock cfiBlock5

        RSEG XSP:DATA:REORDER:NOROOT(0)

        ASEGN SFR_AN:DATA:NOROOT,090H
// union <unnamed> volatile __sfr _A_P1
_A_P1:
        DS 1

        END
//  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 + =
减小字号Ctrl + -
显示快捷键?