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

📄 onboard.lst

📁 CC2430上开关控制灯和温度传感器采集两个例子
💻 LST
📖 第 1 页 / 共 5 页
字号:
    315                {
    316                  if ( *pHold != STACK_INIT_VALUE )
    317                    break;
    318                  else
    319                    pHold--;
   \                     ??OnBoard_stack_used_3:
   \   000015   E582         MOV     A,DPL
   \   000017   24FF         ADD     A,#-0x1
   \   000019   F582         MOV     DPL,A
   \   00001B   E583         MOV     A,DPH
   \   00001D   34FF         ADDC    A,#-0x1
   \   00001F   F583         MOV     DPH,A
   \   000021   0A           INC     R2
   \   000022   EA           MOV     A,R2
   \   000023   C3           CLR     C
   \   000024   940C         SUBB    A,#0xc
   \   000026   5013         JNC     ??OnBoard_stack_used_4
   \                     ??OnBoard_stack_used_2:
   \   000028   E0           MOVX    A,@DPTR
   \   000029   64A5         XRL     A,#0xa5
   \   00002B   60E8         JZ      ??OnBoard_stack_used_3
    320                }
    321                // Did we find the needed minimum number in a row
    322                if ( x >= MIN_RAM_INIT )
    323                  found = true;
    324              }
    325              if ( !found )
    326                pStack--;
   \                     ??OnBoard_stack_used_1:
   \   00002D   E8           MOV     A,R0
   \   00002E   24FF         ADD     A,#-0x1
   \   000030   18           DEC     R0
   \   000031   E9           MOV     A,R1
   \   000032   34FF         ADDC    A,#-0x1
   \   000034   F9           MOV     R1,A
   \   000035   E8           MOV     A,R0
   \   000036   7001         JNZ     ??OnBoard_stack_used_5
   \   000038   E9           MOV     A,R1
   \                     ??OnBoard_stack_used_5:
   \   000039   70CD         JNZ     ??OnBoard_stack_used_0
    327            }
    328          
    329            if ( pStack )
   \                     ??OnBoard_stack_used_4:
   \   00003B   E8           MOV     A,R0
   \   00003C   7001         JNZ     ??OnBoard_stack_used_6
   \   00003E   E9           MOV     A,R1
   \                     ??OnBoard_stack_used_6:
   \   00003F   600B         JZ      ??OnBoard_stack_used_7
    330              return ( (uint16)((byte*)MCU_RAM_END - pStack) );
   \   000041   74FF         MOV     A,#-0x1
   \   000043   C3           CLR     C
   \   000044   98           SUBB    A,R0
   \   000045   FA           MOV     R2,A
   \   000046   74FF         MOV     A,#-0x1
   \   000048   99           SUBB    A,R1
   \   000049   FB           MOV     R3,A
   \   00004A   8004         SJMP    ??OnBoard_stack_used_8
    331            else
    332              return ( 0 );
   \                     ??OnBoard_stack_used_7:
   \   00004C   7A00         MOV     R2,#0x0
   \   00004E   7B00         MOV     R3,#0x0
   \                     ??OnBoard_stack_used_8:
   \   000050                REQUIRE ?Subroutine0
   \   000050                ; // Fall through to label ?Subroutine0
    333          }
    334          
    335          /*********************************************************************
    336           * @fn      _itoa
    337           *
    338           * @brief   convert a 16bit number to ASCII
    339           *
    340           * @param   num -
    341           *          buf -
    342           *          radix -
    343           *
    344           * @return  void
    345           *
    346           *********************************************************************/

   \                                 In segment BANKED_CODE, align 1, keep-with-next
    347          void _itoa(uint16 num, byte *buf, byte radix)
   \                     _itoa:
    348          {
   \   000000   74F2         MOV     A,#-0xe
   \   000002   12....       LCALL   ?BANKED_ENTER_XDATA
   \   000005                ; Saved register size: 14
   \   000005                ; Auto size: 5
   \   000005   74FB         MOV     A,#-0x5
   \   000007   12....       LCALL   ?ALLOC_XSTACK8
   \   00000A   EA           MOV     A,R2
   \   00000B   FE           MOV     R6,A
   \   00000C   EB           MOV     A,R3
   \   00000D   FF           MOV     R7,A
   \   00000E   8C..         MOV     ?V0 + 0,R4
   \   000010   8D..         MOV     ?V0 + 1,R5
   \   000012   89..         MOV     ?V0 + 5,R1
    349            char c,i;
    350            byte *p, rst[5];
    351          
    352            p = rst;
   \   000014   85..82       MOV     DPL,?XSP + 0
   \   000017   85..83       MOV     DPH,?XSP + 1
   \   00001A   AC82         MOV     R4,DPL
   \   00001C   AD83         MOV     R5,DPH
    353            for ( i=0; i<5; i++,p++ )
   \   00001E   75..00       MOV     ?V0 + 4,#0x0
    354            {
    355              c = num % radix;  // Isolate a digit
   \                     ??_itoa_0:
   \   000021   EE           MOV     A,R6
   \   000022   F8           MOV     R0,A
   \   000023   EF           MOV     A,R7
   \   000024   F9           MOV     R1,A
   \   000025   E5..         MOV     A,?V0 + 5
   \   000027   F5..         MOV     ?V0 + 2,A
   \   000029   FA           MOV     R2,A
   \   00002A   7B00         MOV     R3,#0x0
   \   00002C   12....       LCALL   ?US_DIV_MOD
   \   00002F   EA           MOV     A,R2
    356              *p = c + (( c < 10 ) ? '0' : '7');  // Convert to Ascii
   \   000030   940A         SUBB    A,#0xa
   \   000032   5004         JNC     ??_itoa_1
   \   000034   7830         MOV     R0,#0x30
   \   000036   8002         SJMP    ??_itoa_2
   \                     ??_itoa_1:
   \   000038   7837         MOV     R0,#0x37
   \                     ??_itoa_2:
   \   00003A   E8           MOV     A,R0
   \   00003B   2A           ADD     A,R2
   \   00003C   8C82         MOV     DPL,R4
   \   00003E   8D83         MOV     DPH,R5
   \   000040   F0           MOVX    @DPTR,A
    357              num /= radix;
   \   000041   EE           MOV     A,R6
   \   000042   F8           MOV     R0,A
   \   000043   EF           MOV     A,R7
   \   000044   F9           MOV     R1,A
   \   000045   AA..         MOV     R2,?V0 + 2
   \   000047   7B00         MOV     R3,#0x0
   \   000049   12....       LCALL   ?US_DIV_MOD
   \   00004C   88..         MOV     ?V0 + 2,R0
   \   00004E   89..         MOV     ?V0 + 3,R1
   \   000050   AE..         MOV     R6,?V0 + 2
   \   000052   AF..         MOV     R7,?V0 + 3
    358              if ( !num )
   \   000054   EE           MOV     A,R6
   \   000055   7001         JNZ     ??_itoa_3
   \   000057   EF           MOV     A,R7
   \                     ??_itoa_3:
   \   000058   600D         JZ      ??_itoa_4
    359                break;
    360            }
   \   00005A   05..         INC     ?V0 + 4
   \   00005C   A3           INC     DPTR
   \   00005D   AC82         MOV     R4,DPL
   \   00005F   AD83         MOV     R5,DPH
   \   000061   E5..         MOV     A,?V0 + 4
   \   000063   9405         SUBB    A,#0x5
   \   000065   40BA         JC      ??_itoa_0
    361          
    362            for ( c=0 ; c<=i; c++ )
   \                     ??_itoa_4:
   \   000067   7A00         MOV     R2,#0x0
    363              *buf++ = *p--;  // Reverse character order
   \                     ??_itoa_5:
   \   000069   8C82         MOV     DPL,R4
   \   00006B   8D83         MOV     DPH,R5
   \   00006D   E0           MOVX    A,@DPTR
   \   00006E   85..82       MOV     DPL,?V0 + 0
   \   000071   85..83       MOV     DPH,?V0 + 1
   \   000074   F0           MOVX    @DPTR,A
   \   000075   EC           MOV     A,R4
   \   000076   24FF         ADD     A,#-0x1
   \   000078   1C           DEC     R4
   \   000079   ED           MOV     A,R5
   \   00007A   34FF         ADDC    A,#-0x1
   \   00007C   FD           MOV     R5,A
   \   00007D   A3           INC     DPTR
   \   00007E   8582..       MOV     ?V0 + 0,DPL
   \   000081   8583..       MOV     ?V0 + 1,DPH
   \   000084   0A           INC     R2
   \   000085   E5..         MOV     A,?V0 + 4
   \   000087   C3           CLR     C
   \   000088   9A           SUBB    A,R2
   \   000089   50DE         JNC     ??_itoa_5
    364          
    365            *buf = '\0';
   \   00008B   E4           CLR     A
   \   00008C   F0           MOVX    @DPTR,A
    366          }
   \   00008D   7405         MOV     A,#0x5
   \   00008F   12....       LCALL   ?DEALLOC_XSTACK8
   \   000092   7F06         MOV     R7,#0x6
   \   000094   02....       LJMP    ?BANKED_LEAVE_XDATA
    367          
    368          /*********************************************************************
    369           * @fn        Onboard_rand
    370           *
    371           * @brief    Random number generator
    372           *
    373           * @param   none
    374           *
    375           * @return  uint16 - new random number
    376           *
    377           *********************************************************************/

   \                                 In segment BANKED_CODE, align 1, keep-with-next
    378          uint16 Onboard_rand( void )
   \                     Onboard_rand:
    379          {
   \   000000   74F7         MOV     A,#-0x9
   \   000002   12....       LCALL   ?BANKED_ENTER_XDATA
   \   000005                ; Saved register size: 9
   \   000005                ; Auto size: 0
    380            uint16 randNum;
    381          
    382            randNum = macMcuRandomByte();
   \   000005                ; Setup parameters for call to function macMcuRandomByte
   \   000005   90....       MOV     DPTR,#(macMcuRandomByte & 0xffff)
   \   000008   74..         MOV     A,#((macMcuRandomByte >> 16) & 0xff)
   \   00000A   12....       LCALL   ?BCALL               ; Banked call to: DPTR()
   \   00000D   E9           MOV     A,R1
   \   00000E   FE           MOV     R6,A
    383            randNum += (macMcuRandomByte() << 8);
   \   00000F                ; Setup parameters for call to function macMcuRandomByte
   \   00000F   74..         MOV     A,#((macMcuRandomByte >> 16) & 0xff)
   \   000011   12....       LCALL   ?BCALL               ; Banked call to: DPTR()
   \   000014   EE           MOV     A,R6
   \   000015   2400         ADD     A,#0x0
   \   000017   E4           CLR     A
   \   000018   39           ADDC    A,R1
   \   000019   FF           MOV     R7,A
    384            return ( randNum );
   \   00001A   EE           MOV     A,R6
   \   00001B   FA           MOV     R2,A
   \   00001C   EF           MOV     A,R7
   \   00001D   FB           MOV     R3,A
   \   00001E   7F01         MOV     R7,#0x1
   \   000020   02....       LJMP    ?BANKED_LEAVE_XDATA
    385          }
    386          
    387          /*********************************************************************
    388           * @fn        Onboard_wait
    389           *

⌨️ 快捷键说明

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