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

📄 main.lst

📁 完成数据的采集
💻 LST
📖 第 1 页 / 共 5 页
字号:
   \   0000007A   0220               MOVS     R0,#+2
   \   0000007C   ........           BL       RCC_SYSCLKConfig
    228          }
   \   00000080   01B0               ADD      SP,SP,#+4
   \   00000082   00BD               POP      {PC}             ;; return
    229          /************************************************************************/
    230          // Pos = (GetADC1Channel(ADC_Channel_15)*100);
    231          /************************************************************************/

   \                                 In section .XML, align 4, keep-with-next
    232          Int16U GetADC1Channel(Int8U chanel)
    233          {
   \                     GetADC1Channel:
   \   00000000   10B5               PUSH     {R4,LR}
   \   00000002   0400               MOVS     R4,R0
    234            // Configure channel
    235            ADC_RegularChannelConfig(ADC1, chanel, 1, ADC_SampleTime_55Cycles5);
   \   00000004   0523               MOVS     R3,#+5
   \   00000006   0122               MOVS     R2,#+1
   \   00000008   2100               MOVS     R1,R4
   \   0000000A   C9B2               UXTB     R1,R1            ;; ZeroExtS R1,R1,#+24,#+24
   \   0000000C   ....               LDR.N    R0,??DataTable11  ;; 0x40012400
   \   0000000E   ........           BL       ADC_RegularChannelConfig
    236          
    237            // Start the conversion
    238            ADC_SoftwareStartConvCmd(ADC1, ENABLE);
   \   00000012   0121               MOVS     R1,#+1
   \   00000014   ....               LDR.N    R0,??DataTable11  ;; 0x40012400
   \   00000016   ........           BL       ADC_SoftwareStartConvCmd
    239          
    240            // Wait until conversion completion
    241            while(ADC_GetFlagStatus(ADC1, ADC_FLAG_EOC) == RESET);
   \                     ??GetADC1Channel_0:
   \   0000001A   0221               MOVS     R1,#+2
   \   0000001C   ....               LDR.N    R0,??DataTable11  ;; 0x40012400
   \   0000001E   ........           BL       ADC_GetFlagStatus
   \   00000022   0028               CMP      R0,#+0
   \   00000024   F9D0               BEQ.N    ??GetADC1Channel_0
    242          
    243            // Get the conversion value
    244            return ADC_GetConversionValue(ADC1);
   \   00000026   ....               LDR.N    R0,??DataTable11  ;; 0x40012400
   \   00000028   ........           BL       ADC_GetConversionValue
   \   0000002C   10BD               POP      {R4,PC}          ;; return
    245          }
    246          //////////////////////////////////////////////////////////////////
    247          //////////////////////////////////////////////////////////////////

   \                                 In section .XML, align 4, keep-with-next
    248          void InitADC1(void)
    249          {
   \                     InitADC1:
   \   00000000   00B5               PUSH     {LR}
   \   00000002   87B0               SUB      SP,SP,#+28
    250          GPIO_InitTypeDef GPIO_InitStructure;
    251          ADC_InitTypeDef   ADC_InitStructure;
    252          
    253            // ADC init
    254            // ADC Deinit
    255            RCC_APB2PeriphClockCmd(RCC_APB2Periph_ADC1, ENABLE);
   \   00000004   0121               MOVS     R1,#+1
   \   00000006   5FF40070           MOVS     R0,#+512
   \   0000000A   ........           BL       RCC_APB2PeriphClockCmd
    256            ADC_DeInit(ADC1);
   \   0000000E   ....               LDR.N    R0,??DataTable11  ;; 0x40012400
   \   00000010   ........           BL       ADC_DeInit
    257          
    258            // RC5 - analog input
    259            GPIO_InitStructure.GPIO_Pin = GPIO_Pin_3;
   \   00000014   0820               MOVS     R0,#+8
   \   00000016   ADF80000           STRH     R0,[SP, #+0]
    260            GPIO_InitStructure.GPIO_Speed = (GPIOSpeed_TypeDef)0;
   \   0000001A   0020               MOVS     R0,#+0
   \   0000001C   8DF80200           STRB     R0,[SP, #+2]
    261            GPIO_InitStructure.GPIO_Mode = (GPIOMode_TypeDef)GPIO_Mode_AIN;
   \   00000020   0020               MOVS     R0,#+0
   \   00000022   8DF80300           STRB     R0,[SP, #+3]
    262            GPIO_Init (GPIOC, &GPIO_InitStructure);
   \   00000026   6946               MOV      R1,SP
   \   00000028   ....               LDR.N    R0,??DataTable19  ;; 0x40011000
   \   0000002A   ........           BL       GPIO_Init
    263          
    264            // ADC Structure Initialization
    265            ADC_StructInit(&ADC_InitStructure);
   \   0000002E   01A8               ADD      R0,SP,#+4
   \   00000030   ........           BL       ADC_StructInit
    266          
    267            ADC_InitStructure.ADC_Mode = ADC_Mode_Independent;
   \   00000034   0020               MOVS     R0,#+0
   \   00000036   0190               STR      R0,[SP, #+4]
    268            ADC_InitStructure.ADC_ScanConvMode = DISABLE;
   \   00000038   0020               MOVS     R0,#+0
   \   0000003A   8DF80800           STRB     R0,[SP, #+8]
    269            ADC_InitStructure.ADC_ContinuousConvMode = DISABLE;
   \   0000003E   0020               MOVS     R0,#+0
   \   00000040   8DF80900           STRB     R0,[SP, #+9]
    270            ADC_InitStructure.ADC_ExternalTrigConv = ADC_ExternalTrigConv_None;
   \   00000044   5FF46020           MOVS     R0,#+917504
   \   00000048   0390               STR      R0,[SP, #+12]
    271            ADC_InitStructure.ADC_DataAlign = ADC_DataAlign_Right;
   \   0000004A   0020               MOVS     R0,#+0
   \   0000004C   0490               STR      R0,[SP, #+16]
    272            ADC_InitStructure.ADC_NbrOfChannel = 1;
   \   0000004E   0120               MOVS     R0,#+1
   \   00000050   8DF81400           STRB     R0,[SP, #+20]
    273            ADC_Init(ADC1, &ADC_InitStructure);
   \   00000054   01A9               ADD      R1,SP,#+4
   \   00000056   ....               LDR.N    R0,??DataTable11  ;; 0x40012400
   \   00000058   ........           BL       ADC_Init
    274          
    275            // Enable the ADC
    276            ADC_Cmd(ADC1, ENABLE);
   \   0000005C   0121               MOVS     R1,#+1
   \   0000005E   ....               LDR.N    R0,??DataTable11  ;; 0x40012400
   \   00000060   ........           BL       ADC_Cmd
    277          
    278            // ADC calibration
    279            // Enable ADC1 reset calibaration register
    280            ADC_ResetCalibration(ADC1);
   \   00000064   ....               LDR.N    R0,??DataTable11  ;; 0x40012400
   \   00000066   ........           BL       ADC_ResetCalibration
    281            // Check the end of ADC1 reset calibration register
    282            while(ADC_GetResetCalibrationStatus(ADC1) == SET);
   \                     ??InitADC1_0:
   \   0000006A   ....               LDR.N    R0,??DataTable11  ;; 0x40012400
   \   0000006C   ........           BL       ADC_GetResetCalibrationStatus
   \   00000070   0128               CMP      R0,#+1
   \   00000072   FAD0               BEQ.N    ??InitADC1_0
    283          
    284            // Start ADC1 calibaration
    285            ADC_StartCalibration(ADC1);
   \   00000074   ....               LDR.N    R0,??DataTable11  ;; 0x40012400
   \   00000076   ........           BL       ADC_StartCalibration
    286            // Check the end of ADC1 calibration
    287            while(ADC_GetCalibrationStatus(ADC1) == SET);
   \                     ??InitADC1_1:
   \   0000007A   ....               LDR.N    R0,??DataTable11  ;; 0x40012400
   \   0000007C   ........           BL       ADC_GetCalibrationStatus
   \   00000080   0128               CMP      R0,#+1
   \   00000082   FAD0               BEQ.N    ??InitADC1_1
    288          
    289          }
   \   00000084   07B0               ADD      SP,SP,#+28
   \   00000086   00BD               POP      {PC}             ;; return
    290          
    291          
    292          

   \                                 In section .XML, align 4, keep-with-next
    293          void  ADC_TEMP(Int16U *p)
    294          {
   \                     ADC_TEMP:
   \   00000000   F1B5               PUSH     {R0,R4-R7,LR}
   \   00000002   0400               MOVS     R4,R0
    295          	Int16U	a,c;
    296          	Int32U  b;
    297                  static	Int16U  ADC_COUNT;
    298          	static	Int16U	TAD[8];
    299          	a=GetADC1Channel(ADC_Channel_13);
   \   00000004   0D20               MOVS     R0,#+13
   \   00000006   ........           BL       GetADC1Channel
   \   0000000A   0500               MOVS     R5,R0
    300          	TAD[7]=TAD[6];
   \   0000000C   2A48               LDR.N    R0,??ADC_TEMP_0  ;; ??TAD + 14
   \   0000000E   2B49               LDR.N    R1,??ADC_TEMP_0+0x4  ;; ??TAD + 12
   \   00000010   0988               LDRH     R1,[R1, #+0]
   \   00000012   0180               STRH     R1,[R0, #+0]
    301          	TAD[6]=TAD[5];
   \   00000014   2948               LDR.N    R0,??ADC_TEMP_0+0x4  ;; ??TAD + 12
   \   00000016   2A49               LDR.N    R1,??ADC_TEMP_0+0x8  ;; ??TAD + 10
   \   00000018   0988               LDRH     R1,[R1, #+0]
   \   0000001A   0180               STRH     R1,[R0, #+0]
    302          	TAD[5]=TAD[4];
   \   0000001C   2848               LDR.N    R0,??ADC_TEMP_0+0x8  ;; ??TAD + 10
   \   0000001E   2949               LDR.N    R1,??ADC_TEMP_0+0xC  ;; ??TAD + 8
   \   00000020   0988               LDRH     R1,[R1, #+0]
   \   00000022   0180               STRH     R1,[R0, #+0]
    303          	TAD[4]=TAD[3];
   \   00000024   2748               LDR.N    R0,??ADC_TEMP_0+0xC  ;; ??TAD + 8
   \   00000026   2849               LDR.N    R1,??ADC_TEMP_0+0x10  ;; ??TAD + 6
   \   00000028   0988               LDRH     R1,[R1, #+0]
   \   0000002A   0180               STRH     R1,[R0, #+0]
    304          	TAD[3]=TAD[2];
   \   0000002C   2648               LDR.N    R0,??ADC_TEMP_0+0x10  ;; ??TAD + 6
   \   0000002E   2749               LDR.N    R1,??ADC_TEMP_0+0x14  ;; ??TAD + 4
   \   00000030   0988               LDRH     R1,[R1, #+0]
   \   00000032   0180               STRH     R1,[R0, #+0]
    305                  TAD[2]=TAD[1];
   \   00000034   2548               LDR.N    R0,??ADC_TEMP_0+0x14  ;; ??TAD + 4
   \   00000036   2649               LDR.N    R1,??ADC_TEMP_0+0x18  ;; ??TAD + 2
   \   00000038   0988               LDRH     R1,[R1, #+0]
   \   0000003A   0180               STRH     R1,[R0, #+0]
    306          	TAD[1]=TAD[0];
   \   0000003C   2448               LDR.N    R0,??ADC_TEMP_0+0x18  ;; ??TAD + 2
   \   0000003E   2549               LDR.N    R1,??ADC_TEMP_0+0x1C  ;; ??TAD
   \   00000040   0988               LDRH     R1,[R1, #+0]
   \   00000042   0180               STRH     R1,[R0, #+0]
    307          	TAD[0]=a;
   \   00000044   2348               LDR.N    R0,??ADC_TEMP_0+0x1C  ;; ??TAD
   \   00000046   0580               STRH     R5,[R0, #+0]
    308                  if(++ADC_COUNT>=5)
   \   00000048   2348               LDR.N    R0,??ADC_TEMP_0+0x20  ;; ??ADC_COUNT
   \   0000004A   0088               LDRH     R0,[R0, #+0]
   \   0000004C   401C               ADDS     R0,R0,#+1
   \   0000004E   2249               LDR.N    R1,??ADC_TEMP_0+0x20  ;; ??ADC_COUNT
   \   00000050   0880               STRH     R0,[R1, #+0]
   \   00000052   80B2               UXTH     R0,R0            ;; ZeroExtS R0,R0,#+16,#+16
   \   00000054   0528               CMP      R0,#+5
   \   00000056   2DD3               BCC.N    ??ADC_TEMP_1
    309                 {
    310                  ADC_COUNT=0;
   \   00000058   1F48               LDR.N    R0,??ADC_TEMP_0+0x20  ;; ??ADC_COUNT
   \   0000005A   0021               MOVS     R1,#+0
   \   0000005C   0180               STRH     R1,[R0, #+0]
    311          	b=0;
   \   0000005E   0020               MOVS     R0,#+0
   \   00000060   0700               MOVS     R7,R0
    312          	for(a=0;a<8;a++)
   \   00000062   0020               MOVS     R0,#+0
   \   00000064   0500               MOVS     R5,R0
   \                     ??ADC_TEMP_2:
   \   00000066   ADB2               UXTH     R5,R5            ;; ZeroExtS R5,R5,#+16,#+16
   \   00000068   082D               CMP      R5,#+8
   \   0000006A   07D2               BCS.N    ??ADC_TEMP_3
    313          	b+=TAD[a];
   \   0000006C   ADB2               UXTH     R5,R5            ;; ZeroExtS R5,R5,#+16,#+16
   \   0000006E   0220               MOVS     R0,#+2
   \   00000070   6843               MULS     R0,R5,R0
   \   00000072   1849               LDR.N    R1,??ADC_TEMP_0+0x1C  ;; ??TAD
   \   00000074   085A               LDRH     R0,[R1, R0]
   \   00000076   3F18               ADDS     R7,R7,R0
   \   00000078   6D1C               ADDS     R5,R5,#+1
   \   0000007A   F4E7               B.N      ??ADC_TEMP_2
    314          	b=b/8;
   \                     ??ADC_TEMP_3:
   \   0000007C   FF08               LSRS     R7,R7,#+3
    315                  b>>=4;
   \   0000007E   3F09               LSRS     R7,R7,#+4
    316                  c=TEMP_TAB[0];
   \   00000080   1648               LDR.N    R0,??ADC_TEMP_0+0x24  ;; TEMP_TAB
   \   00000082   0088               LDRH     R0,[R0, #+0]
   \   00000084   0600               MOVS     R6,R0
    317                  for(a=0;a<130&&(c>b);)
   \   00000086   0020               MOVS     R0,#+0
   \   00000088   0500               MOVS     R5,R0
   \                     ??ADC_TEMP_4:
   \   0000008A   ADB2               UXTH     R5,R5            ;; ZeroExtS R5,R5,#+16,#+16
   \   0000008C   822D               CMP      R5,#+130

⌨️ 快捷键说明

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