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

📄 easyweb.lst

📁 msp430 cs8900a msp430 servermsp430 servermsp430 servermsp430 servermsp430 server
💻 LST
📖 第 1 页 / 共 4 页
字号:
    240            ADC12CTL0 &= ~ENC;                             // disable conversion
   \   000014   A2C3A001     BIC.W   #0x2, &0x1a0
    241          
    242            ADCResult = ADC12MEM0;                         // Read out ADC12 value
   \   000018   1E424001     MOV.W   &0x140, R14
    243          
    244            for (i = 0; i < sizeof Temp_Tab; i++)          // Get temperature value out
   \   00001C   0C43         MOV.W   #0x0, R12
   \   00001E   013C         JMP     ??GetTempVal_2
   \                     ??GetTempVal_1:
   \   000020   1C53         ADD.W   #0x1, R12
   \                     ??GetTempVal_2:
   \   000022   3C905E00     CMP.W   #0x5e, R12
   \   000026   052C         JC      ??GetTempVal_3
    245              if (ADCResult < Temp_Tab[i])                 // of table
   \   000028   0F4C         MOV.W   R12, R15
   \   00002A   0F5F         RLA.W   R15
   \   00002C   1E9F....     CMP.W   Temp_Tab(R15), R14
   \   000030   F72F         JC      ??GetTempVal_1
    246                break;
    247          
    248            return i << 1;                                 // Scale value
   \                     ??GetTempVal_3:
   \   000032   0C5C         RLA.W   R12
   \   000034   3041         RET
    249          }
    250          //------------------------------------------------------------------------------
    251          // searches the TX-buffer for special strings and replaces them
    252          // with dynamic values (AD-converter results)
    253          //------------------------------------------------------------------------------

   \                                 In segment CODE, align 2
    254          static void InsertDynamicValues(void)
   \                     InsertDynamicValues:
    255          {
   \   000000   0A12         PUSH.W  R10
   \   000002   0B12         PUSH.W  R11
   \   000004   31800600     SUB.W   #0x6, SP
    256            char *Key;
    257            char NewKey[5];
    258            int i;
    259            
    260            if (TCPTxDataCount < 4) return;                // there can't be any special string
   \   000008   A292....     CMP.W   #0x4, &TCPTxDataCount
   \   00000C   4328         JNC     ??InsertDynamicValues_2
    261            
    262            Key = (char *)TCP_TX_BUF;
   \   00000E   3A40....     MOV.W   #TxFrame1Mem + 54, R10
    263            
    264            for (i = 0; i < TCPTxDataCount - 3; i++)
   \   000012   0B43         MOV.W   #0x0, R11
   \   000014   173C         JMP     ??InsertDynamicValues_3
    265            {
    266              if (*Key == 'A')
    267               if (*(Key + 1) == 'D')
    268                 if (*(Key + 3) == '%')
    269                   if (*(Key + 2) == '7')                  // "AD7%"?
    270                   {
    271                     sprintf(NewKey, "%3u", GetAD7Val());  // insert AD converter value
    272                     memcpy(Key, NewKey, 3);               // channel 7 (P6.7)
    273                   }
    274                   else if (*(Key + 2) == 'A')
   \                     ??InsertDynamicValues_1:
   \   000016   FA9041000200 CMP.B   #0x41, 0x2(R10)
   \   00001C   1120         JNE     ??InsertDynamicValues_0
    275                   {
    276                     sprintf(NewKey, "%3u", GetTempVal()); // insert AD converter value
   \   00001E   B012....     CALL    #GetTempVal
   \   000022   0C12         PUSH.W  R12
   \   000024   3E40....     MOV.W   #`?<Constant "%3u">`, R14
   \   000028   0C41         MOV.W   SP, R12
   \   00002A   2C53         ADD.W   #0x2, R12
   \   00002C   B012....     CALL    #sprintf
    277                     memcpy(Key, NewKey, 3);               // channel 10 (temp.-diode)
   \   000030   30120300     PUSH.W  #0x3
   \   000034   0E41         MOV.W   SP, R14
   \   000036   2E52         ADD.W   #0x4, R14
   \   000038   0C4A         MOV.W   R10, R12
   \   00003A   B012....     CALL    #memcpy
   \   00003E   2152         ADD.W   #0x4, SP
    278                   }
    279              Key++;
   \                     ??InsertDynamicValues_0:
   \   000040   1A53         ADD.W   #0x1, R10
   \   000042   1B53         ADD.W   #0x1, R11
   \                     ??InsertDynamicValues_3:
   \   000044   1F42....     MOV.W   &TCPTxDataCount, R15
   \   000048   3F50FDFF     ADD.W   #0xfffd, R15
   \   00004C   0B9F         CMP.W   R15, R11
   \   00004E   222C         JC      ??InsertDynamicValues_2
   \   000050   FA9041000000 CMP.B   #0x41, 0(R10)
   \   000056   F423         JNE     ??InsertDynamicValues_0
   \   000058   FA9044000100 CMP.B   #0x44, 0x1(R10)
   \   00005E   F023         JNE     ??InsertDynamicValues_0
   \   000060   FA9025000300 CMP.B   #0x25, 0x3(R10)
   \   000066   EC23         JNE     ??InsertDynamicValues_0
   \   000068   FA9037000200 CMP.B   #0x37, 0x2(R10)
   \   00006E   D323         JNE     ??InsertDynamicValues_1
   \   000070   B012....     CALL    #GetAD7Val
   \   000074   0C12         PUSH.W  R12
   \   000076   3E40....     MOV.W   #`?<Constant "%3u">`, R14
   \   00007A   0C41         MOV.W   SP, R12
   \   00007C   2C53         ADD.W   #0x2, R12
   \   00007E   B012....     CALL    #sprintf
   \   000082   30120300     PUSH.W  #0x3
   \   000086   0E41         MOV.W   SP, R14
   \   000088   2E52         ADD.W   #0x4, R14
   \   00008A   0C4A         MOV.W   R10, R12
   \   00008C   B012....     CALL    #memcpy
   \   000090   2152         ADD.W   #0x4, SP
   \   000092   D63F         JMP     ??InsertDynamicValues_0
    280            }
   \                     ??InsertDynamicValues_2:
   \   000094   31500600     ADD.W   #0x6, SP
   \   000098   3B41         POP.W   R11
   \   00009A   3A41         POP.W   R10
   \   00009C   3041         RET
    281          }
    282          //------------------------------------------------------------------------------
    283          // enables the 8MHz crystal on XT1 and use
    284          // it as MCLK
    285          //------------------------------------------------------------------------------

   \                                 In segment CODE, align 2
    286          static void InitOsc(void)
   \                     InitOsc:
    287          {
    288            WDTCTL = WDTPW + WDTHOLD;                      // stop watchdog timer
   \   000000   B240805A2001 MOV.W   #0x5a80, &0x120
    289          
    290            BCSCTL1 |= XTS;                                // XT1 as high-frequency
   \   000006   F2D040005700 BIS.B   #0x40, &0x57
    291            __bic_SR_register(OSCOFF);                     // turn on XT1 oscillator
   \   00000C   32C02000     BIC.W   #0x20, SR
    292          
    293            do
    294            {
    295              IFG1 &= ~OFIFG;                              // Clear OFIFG
   \                     ??InitOsc_0:
   \   000010   E2C30200     BIC.B   #0x2, &0x2
    296              DelayCycles(100);                            // Wait ~130us
   \   000014   3C406400     MOV.W   #0x64, R12
   \   000018   B012....     CALL    #DelayCycles
    297            } while (IFG1 & OFIFG);                        // Test oscillator fault flag
   \   00001C   E2B30200     BIT.B   #0x2, &0x2
   \   000020   F72F         JC      ??InitOsc_0
    298            
    299            BCSCTL2 = SELM_3;                              // set XT1 as MCLK
   \   000022   F240C0005800 MOV.B   #0xc0, &0x58
    300          }  
   \   000028   3041         RET
    301          //------------------------------------------------------------------------------

   \                                 In segment CODE, align 2
    302          static void InitPorts(void)
   \                     InitPorts:
    303          {
    304            P1OUT = 0;                                     // switch all unused ports to output   
   \   000000   C2432100     MOV.B   #0x0, &0x21
    305            P1DIR = 0xff;                                  // (Rem.: ports 3 & 5 are set in "cs8900.c")
   \   000004   F2432200     MOV.B   #0xff, &0x22
    306          
    307            P2OUT = 0;
   \   000008   C2432900     MOV.B   #0x0, &0x29
    308            P2DIR = 0xff;
   \   00000C   F2432A00     MOV.B   #0xff, &0x2a
    309          
    310            P4OUT = 0;
   \   000010   C2431D00     MOV.B   #0x0, &0x1d
    311            P4DIR = 0xff;
   \   000014   F2431E00     MOV.B   #0xff, &0x1e
    312          
    313            P6SEL = 0x80;                                  // use P6.7 for the ADC module
   \   000018   F24080003700 MOV.B   #0x80, &0x37
    314            P6OUT = 0;
   \   00001E   C2433500     MOV.B   #0x0, &0x35
    315            P6DIR = 0x7f;                                  // all output except P6.7
   \   000022   F2407F003600 MOV.B   #0x7f, &0x36
    316          }
   \   000028   3041         RET
    317          //------------------------------------------------------------------------------

   \                                 In segment CODE, align 2
    318          static void InitADC12(void)
   \                     InitADC12:
    319          {
    320            ADC12CTL0 = ADC12ON + REFON + REF2_5V + SHT0_6;// Turn on ADC12, 2.5Vref, set SHT0
   \   000000   B2407006A001 MOV.W   #0x670, &0x1a0
    321            ADC12CTL1 = SHS_0 + SHP + CONSEQ_0;            // Use sampling timer, ADC12SC
   \   000006   B2400002A201 MOV.W   #0x200, &0x1a2
    322                                                           // triggers conversion,
    323                                                           // single channel single conversion,
    324          }
   \   00000C   3041         RET

   \                                 In segment DATA16_C, align 1, align-sorted
   \                     `?<Constant "%3u">`:
   \   000000   25337500     DC8 "%3u"
    325          
    326          

   Maximum stack usage in bytes:

     Function                 CSTACK
     --------                 ------
     GetAD7Val                    2
     GetTempVal                   2
     HTTPServer                   6
       -> TCPReleaseRxBuffer      2
       -> memcpy                  4
       -> memcpy                  6
       -> memcpy                  4
       -> InsertDynamicValues     2
       -> TCPTransmitTxBuffer     2
       -> memcpy                  4
       -> InsertDynamicValues     4
       -> TCPTransmitTxBuffer     4
       -> TCPClose                4
     InitADC12                    2
     InitOsc                      2
       -> DelayCycles             2
     InitPorts                    2
     InsertDynamicValues         16
       -> GetTempVal             12
       -> sprintf                14
       -> memcpy                 16
       -> GetAD7Val              12
       -> sprintf                14
       -> memcpy                 16
     main                         2
       -> InitOsc                 2
       -> InitPorts               2
       -> InitADC12               2
       -> TCPLowLevelInit         2
       -> TCPPassiveOpen          2
       -> HTTPServer              2


   Segment part sizes:

     Function/Label      Bytes
     --------------      -----
     IFG1                   1
     WDTCTL                 2
     P1OUT                  1
     P1DIR                  1
     P2OUT                  1
     P2DIR                  1
     P4OUT                  1
     P4DIR                  1
     P6OUT                  1
     P6DIR                  1
     P6SEL                  1
     BCSCTL1                1
     BCSCTL2                1
     ADC12CTL0              2
     ADC12CTL1              2
     ADC12MEM0              2
     ADC12MCTL0             1
     WebSide             1427
     GetResponse           45
     PWebSide               2
     HTTPBytesToSend        2
     HTTPStatus             1
     Temp_Tab              94
     main                  44
     HTTPServer           206
     GetAD7Val             42
     GetTempVal            54
     InsertDynamicValues  158
     InitOsc               42
     InitPorts             42
     InitADC12             14
     ?<Constant "%3u">      4

 
   602 bytes in segment CODE
    21 bytes in segment DATA16_AN
 1 570 bytes in segment DATA16_C
     5 bytes in segment DATA16_Z
 
   602 bytes of CODE  memory
 1 570 bytes of CONST memory
     5 bytes of DATA  memory (+ 21 bytes shared)

Errors: none
Warnings: none

⌨️ 快捷键说明

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