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

📄 main.lst

📁 ADUC7026完成AD采集并将波形用DA还原。体现出1M的真实速度
💻 LST
字号:
ARM COMPILER V2.54a,  main                                                                 10/05/08  20:06:57  PAGE 1   


ARM COMPILER V2.54a, COMPILATION OF MODULE main
OBJECT MODULE PLACED IN main.OBJ
COMPILER INVOKED BY: e:\Keil\ARM\BIN\CA.exe main.c THUMB BROWSE DEBUG TABS(4) 

stmt  level    source

    1          #include <ADuC7026.h>
    2          void ADCpoweron(int);
    3          void SysClkInit(void);
    4          int main (void)  
    5          {   int i;
    6   1          long adcdat;
    7   1          SysClkInit();
    8   1      
    9   1          DAC2CON = 0x13;                     // DAC configuration
   10   1          DAC2DAT = 0x08000000;               // start from midscale
   11   1      
   12   1          ADCpoweron(20000);                  // power on ADC                                             
   13   1          ADCCP = 0x00;                       // select ADC channel 0
   14   1          REFCON = 0x01;                      // internal 2.5V reference. 2.5V on Vref pin
   15   1          ADCCON = 0x2A4;                     // Config: fADC/2, acq. time = 2 clocks => ADC Speed = 1MSPS
   16   1          while(1)
   17   1          {
   18   2              while (!ADCSTA){}               // wait for end of conversion
   19   2          //  adcdat = ADCDAT;
   20   2              DAC2DAT = ADCDAT;
   21   2          }
   22   1      }
*** WARNING C47 IN LINE 5 OF MAIN.C: 'i': unreferenced local variable
*** WARNING C47 IN LINE 6 OF MAIN.C: 'adcdat': unreferenced local variable
   23          
   24          
   25          void ADCpoweron(int time)
   26          {
   27   1          ADCCON = 0x20;                      // power-on the ADC
   28   1          while (time >=0)                    // wait for ADC to be fully powered on
   29   1          time--;
   30   1      }
   31          
   32          void SysClkInit(void)
   33          {
   34   1       PLLKEY1=0xAA;
   35   1       PLLCON=0x01;   //PLL配置  
   36   1       PLLKEY2=0x55;
   37   1       POWKEY1=0x01;
   38   1       POWCON=0x00;  //CPU时钟配置为41.78MHz
   39   1       POWKEY2=0xF4;
   40   1      // while(!(PLLSTA & 0x01));
   41   1      }
ARM COMPILER V2.54a,  main                                                                 10/05/08  20:06:57  PAGE 2   

ASSEMBLY LISTING OF GENERATED OBJECT CODE



*** EXTERNALS:
 EXTERN NUMBER (__startup)



*** PUBLICS:
 PUBLIC         ADCpoweron?T
 PUBLIC         SysClkInit?T
 PUBLIC         main



*** CODE SEGMENT '?PR?main?main':
    4: int main (void)  
 00000000  B500      PUSH        {LR}
    5: {    int i;
 00000002            ; SCOPE-START
    7:     SysClkInit();
 00000002  F7FF      BL          SysClkInit?T  ; T=0x0001  (1)
 00000004  FFFD      BL          SysClkInit?T  ; T=0x0001  (2)
    9:     DAC2CON = 0x13;                     // DAC configuration
 00000006  2113      MOV         R1,#0x13
 00000008  4800      LDR         R0,=0xFFFF0610
 0000000A  6001      STR         R1,[R0,#0x0]
   10:     DAC2DAT = 0x08000000;               // start from midscale
 0000000C  4800      LDR         R1,=0x8000000
 0000000E  4800      LDR         R0,=0xFFFF0614
 00000010  6001      STR         R1,[R0,#0x0]
   12:     ADCpoweron(20000);                  // power on ADC                                             
 00000012  4800      LDR         R0,=0x4E20
 00000014  F7FF      BL          ADCpoweron?T  ; T=0x0001  (1)
 00000016  FFF4      BL          ADCpoweron?T  ; T=0x0001  (2)
   13:      ADCCP = 0x00;                      // select ADC channel 0
 00000018  2100      MOV         R1,#0x0
 0000001A  4800      LDR         R0,=0xFFFF0504
 0000001C  6001      STR         R1,[R0,#0x0]
   14:     REFCON = 0x01;                      // internal 2.5V reference. 2.5V on Vref pin
 0000001E  2101      MOV         R1,#0x1
 00000020  4800      LDR         R0,=0xFFFF048C
 00000022  6001      STR         R1,[R0,#0x0]
   15:     ADCCON = 0x2A4;                     // Config: fADC/2, acq. time = 2 clocks => ADC Speed = 1MSPS
 00000024  49A9      LDR         R1,=0x2A4
 00000026  4800      LDR         R0,=0xFFFF0500
 00000028  6001      STR         R1,[R0,#0x0]
   18:         while (!ADCSTA){}               // wait for end of conversion
 0000002A          L_8:
 0000002A          L_5:
 0000002A  4800      LDR         R0,=0xFFFF050C
 0000002C  6800      LDR         R0,[R0,#0x0]
 0000002E  2800      CMP         R0,#0x0
 00000030  D0FB      BEQ         L_5  ; T=0x0000002A
   20:         DAC2DAT = ADCDAT;
 00000032  4800      LDR         R0,=0xFFFF0510
 00000034  6801      LDR         R1,[R0,#0x0]
 00000036  4800      LDR         R0,=0xFFFF0614
 00000038  6001      STR         R1,[R0,#0x0]
   21:     }
 0000003A  E7F6      B           L_8  ; T=0x0000002A
 0000003C            ; SCOPE-END
   22: }
 0000003C  BC08      POP         {R3}
 0000003E  4718      BX          R3
 00000040          ENDP ; 'main'


*** CODE SEGMENT '?PR?ADCpoweron?T?main':
   25: void ADCpoweron(int time)
 00000000  ---- Variable 'time' assigned to Register 'R0' ----
   27:     ADCCON = 0x20;                      // power-on the ADC
ARM COMPILER V2.54a,  main                                                                 10/05/08  20:06:57  PAGE 3   

 00000000  2220      MOV         R2,#0x20
 00000002  4800      LDR         R1,=0xFFFF0500
 00000004  600A      STR         R2,[R1,#0x0]
   28:     while (time >=0)                    // wait for ADC to be fully powered on
 00000006  E000      B           L_9  ; T=0x0000000A
 00000008          L_11:
 00000008  3801      SUB         R0,#0x1
 0000000A          L_9:
 0000000A  1C01      MOV         R1,R0 ; time
 0000000C  2900      CMP         R1,#0x0 ; time
 0000000E  DAFB      BGE         L_11  ; T=0x00000008
   30: }
 00000010  4770      BX          R14
 00000012          ENDP ; 'ADCpoweron?T'


*** CODE SEGMENT '?PR?SysClkInit?T?main':
   34:  PLLKEY1=0xAA;
 00000000  21AA      MOV         R1,#0xAA
 00000002  4800      LDR         R0,=0xFFFF0410
 00000004  6001      STR         R1,[R0,#0x0]
   35:  PLLCON=0x01;   //PLL配置  
 00000006  2101      MOV         R1,#0x1
 00000008  4800      LDR         R0,=0xFFFF0414
 0000000A  6001      STR         R1,[R0,#0x0]
   36:  PLLKEY2=0x55;
 0000000C  2255      MOV         R2,#0x55
 0000000E  4800      LDR         R0,=0xFFFF0418
 00000010  6002      STR         R2,[R0,#0x0]
   37:  POWKEY1=0x01;
 00000012  4800      LDR         R0,=0xFFFF0404
 00000014  6001      STR         R1,[R0,#0x0]
   38:  POWCON=0x00;  //CPU时钟配置为41.78MHz
 00000016  2100      MOV         R1,#0x0
 00000018  4800      LDR         R0,=0xFFFF0408
 0000001A  6001      STR         R1,[R0,#0x0]
   39:  POWKEY2=0xF4;
 0000001C  21F4      MOV         R1,#0xF4
 0000001E  4800      LDR         R0,=0xFFFF040C
 00000020  6001      STR         R1,[R0,#0x0]
   41: }
 00000022  4770      BX          R14
 00000024          ENDP ; 'SysClkInit?T'



Module Information          Static
----------------------------------
  code size            =    ------
  data size            =    ------
  const size           =    ------
End of Module Information.


ARM COMPILATION COMPLETE.  2 WARNING(S),  0 ERROR(S)

⌨️ 快捷键说明

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