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

📄 ltc2600.lst

📁 AD9958arm控制源程序
💻 LST
📖 第 1 页 / 共 2 页
字号:
 00000020  FFEF      BL          write_data_to_ltc2600?T  ; T=0x0001  (2)
 00000022  2800      CMP         R0,#0x0 ; write_data_to_ltc2600?T
 00000024  D001      BEQ         L_5  ; T=0x0000002A
 00000026  2001      MOV         R0,#0x1
 00000028  E000      B           L_6  ; T=0x0000002C
 0000002A          L_5:
 0000002A  2000      MOV         R0,#0x0
 0000002C          L_6:
   80: }
 0000002C  BC10      POP         {R4}
 0000002E  BC08      POP         {R3}
 00000030  4718      BX          R3
 00000032          ENDP ; 'set_sine_ac_zero?T'


*** CODE SEGMENT '?PR?write_data_to_ltc2600?T?ltc2600':
   93: int write_data_to_ltc2600(unsigned char chan,unsigned int value)
 00000000  B430      PUSH        {R4-R5}
 00000002  ---- Variable 'value' assigned to Register 'R1' ----
 00000002  1C02      MOV         R2,R0 ; chan
 00000004  ---- Variable 'chan' assigned to Register 'R2' ----
   94: {
 00000004            ; SCOPE-START
   98:     if(chan>DACH)return 0;
 00000004  1C10      MOV         R0,R2 ; chan
 00000006  0600      LSL         R0,R0,#0x18 ; chan
 00000008  0E00      LSR         R0,R0,#0x18
 0000000A  2807      CMP         R0,#0x7
 0000000C  DD01      BLE         L_7  ; T=0x00000012
 0000000E  2000      MOV         R0,#0x0
 00000010  E038      B           L_8  ; T=0x00000084
 00000012          L_7:
   99:     if(value>65535)return 0;
 00000012  1C08      MOV         R0,R1 ; value
 00000014  4800      LDR         R3,=0xFFFF
 00000016  4298      CMP         R0,R3 ; value
 00000018  D901      BLS         L_9  ; T=0x0000001E
 0000001A  2000      MOV         R0,#0x0
 0000001C  E032      B           L_8  ; T=0x00000084
 0000001E          L_9:
  102:     dat|=(chan<<24);
ARM COMPILER V2.53,  ltc2600                                                               23/07/06  16:59:03  PAGE 6   

 0000001E  1C10      MOV         R0,R2 ; chan
 00000020  0600      LSL         R0,R0,#0x18 ; chan
 00000022  0E00      LSR         R0,R0,#0x18
 00000024  0600      LSL         R0,R0,#0x18
 00000026  4800      LDR         R3,=0x20000000
 00000028  4303      ORR         R3,R0
 0000002A  ---- Variable 'dat' assigned to Register 'R3' ----
  103:     dat|=(value<<8);
 0000002A  1C08      MOV         R0,R1 ; value
 0000002C  0200      LSL         R0,R0,#0x8 ; value
 0000002E  4303      ORR         R3,R0
  105:         LTC2600_CS_OFF
 00000030  4800      LDR         R2,=0x40000
 00000032  4800      LDR         R0,=0xE002800C
 00000034  6002      STR         R2,[R0,#0x0]
  106:         LTC2600_CLK_OFF
 00000036  4800      LDR         R1,=0x80000
 00000038  4800      LDR         R0,=0xE002800C
 0000003A  6001      STR         R1,[R0,#0x0]
  108:         for(i=0;i<24;i++){
 0000003C  2000      MOV         R0,#0x0
 0000003E  ---- Variable 'i' assigned to Register 'R0' ----
 0000003E  E014      B           L_12  ; T=0x0000006A
 00000040          L_13:
  110:             if(dat&0x80000000){
 00000040  1C1C      MOV         R4,R3 ; dat
 00000042  4800      LDR         R5,=0x80000000
 00000044  422C      TST         R4,R5 ; dat
 00000046  D003      BEQ         L_15  ; T=0x00000050
  111:                 LTC2600_SDI_ON
 00000048  4800      LDR         R5,=0x100000
 0000004A  4800      LDR         R4,=0xE0028004
 0000004C  6025      STR         R5,[R4,#0x0]
  112:             } else{
 0000004E  E002      B           L_16  ; T=0x00000056
 00000050          L_15:
  113:                 LTC2600_SDI_OFF
 00000050  4800      LDR         R5,=0x100000
 00000052  4800      LDR         R4,=0xE002800C
 00000054  6025      STR         R5,[R4,#0x0]
  114:             }
 00000056          L_16:
  115:             dat<<=1;
 00000056  005B      LSL         R3,R3,#0x1 ; dat
  116:             LTC2600_CLK_ON
 00000058  4800      LDR         R5,=0x80000
 0000005A  4800      LDR         R4,=0xE0028004
 0000005C  6025      STR         R5,[R4,#0x0]
  117:                 LTC2600_CLK_OFF
 0000005E  4800      LDR         R5,=0x80000
 00000060  4800      LDR         R4,=0xE002800C
 00000062  6025      STR         R5,[R4,#0x0]
  118:         }
 00000064  3001      ADD         R0,#0x1
 00000066  0600      LSL         R0,R0,#0x18
 00000068  0E00      LSR         R0,R0,#0x18
 0000006A          L_12:
 0000006A  1C04      MOV         R4,R0 ; i
 0000006C  0624      LSL         R4,R4,#0x18 ; i
 0000006E  0E24      LSR         R4,R4,#0x18
 00000070  2C18      CMP         R4,#0x18
 00000072  DBE5      BLT         L_13  ; T=0x00000040
  119:         LTC2600_CS_ON
 00000074  4800      LDR         R0,=0xE0028004
 00000076  6002      STR         R2,[R0,#0x0]
  120:         LTC2600_CLK_ON
ARM COMPILER V2.53,  ltc2600                                                               23/07/06  16:59:03  PAGE 7   

 00000078  4800      LDR         R0,=0xE0028004
 0000007A  6001      STR         R1,[R0,#0x0]
  121:         LTC2600_SDI_ON
 0000007C  4800      LDR         R1,=0x100000
 0000007E  4800      LDR         R0,=0xE0028004
 00000080  6001      STR         R1,[R0,#0x0]
  123:         return 1;
 00000082  2001      MOV         R0,#0x1
 00000084            ; SCOPE-END
  124: }
 00000084          L_8:
 00000084  BC30      POP         {R4-R5}
 00000086  4770      BX          R14
 00000088          ENDP ; 'write_data_to_ltc2600?T'


*** CODE SEGMENT '?PR?set_amplitude?T?ltc2600':
  137: int set_amplitude(unsigned int chan,unsigned int wv,float value)
 00000000  B5F0      PUSH        {R4-R7,LR}
 00000002  1C15      MOV         R5,R2 ; value
 00000004  ---- Variable 'value' assigned to Register 'R5' ----
 00000004  1C0E      MOV         R6,R1 ; wv
 00000006  ---- Variable 'wv' assigned to Register 'R6' ----
 00000006  1C07      MOV         R7,R0 ; chan
 00000008  ---- Variable 'chan' assigned to Register 'R7' ----
  141:     if(value<0 || value>MAX_OUTPUT_AMPLITUDE)return 0;
 00000008  2400      MOV         R4,#0x0
 0000000A  1C28      MOV         R0,R5 ; value
 0000000C  1C21      MOV         R1,R4
 0000000E  F7FF      BL          ?C?FPCMP?T  ; T=0x0001  (1) ; ?C?FPCMP?T
 00000010  FFF7      BL          ?C?FPCMP?T  ; T=0x0001  (2) ; ?C?FPCMP?T
 00000012  D305      BCC         L_18  ; T=0x00000020
 00000014  4800      LDR         R3,=0x41A00000
 00000016  1C28      MOV         R0,R5 ; value
 00000018  1C19      MOV         R1,R3
 0000001A  F7FF      BL          ?C?FPCMP?T  ; T=0x0001  (1) ; ?C?FPCMP?T
 0000001C  FFF1      BL          ?C?FPCMP?T  ; T=0x0001  (2) ; ?C?FPCMP?T
 0000001E  D901      BLS         L_17  ; T=0x00000024
 00000020          L_18:
 00000020  2000      MOV         R0,#0x0
 00000022  E055      B           L_19  ; T=0x000000D0
 00000024          L_17:
  142:     if(chan!=CHANNEL_A && chan!=CHANNEL_B)return 0;
 00000024  1C38      MOV         R0,R7 ; chan
 00000026  2800      CMP         R0,#0x0 ; chan
 00000028  D004      BEQ         L_20  ; T=0x00000034
 0000002A  1C38      MOV         R0,R7 ; chan
 0000002C  2801      CMP         R0,#0x1 ; chan
 0000002E  D001      BEQ         L_20  ; T=0x00000034
 00000030  2000      MOV         R0,#0x0
 00000032  E04D      B           L_19  ; T=0x000000D0
 00000034          L_20:
  143:     if(wv!=WAVEFORM_SINE && wv!=WAVEFORM_SQUA)return 0;
 00000034  1C30      MOV         R0,R6 ; wv
 00000036  2800      CMP         R0,#0x0 ; wv
 00000038  D004      BEQ         L_21  ; T=0x00000044
 0000003A  1C30      MOV         R0,R6 ; wv
 0000003C  2801      CMP         R0,#0x1 ; wv
 0000003E  D001      BEQ         L_21  ; T=0x00000044
 00000040  2000      MOV         R0,#0x0
 00000042  E045      B           L_19  ; T=0x000000D0
 00000044          L_21:
  146:     value/=20.0;
 00000044  1C28      MOV         R0,R5 ; value
 00000046  1C19      MOV         R1,R3
 00000048  F7FF      BL          ?C?FPDIV?T  ; T=0x0001  (1) ; ?C?FPDIV?T
 0000004A  FFDA      BL          ?C?FPDIV?T  ; T=0x0001  (2) ; ?C?FPDIV?T
 0000004C  1C05      MOV         R5,R0 ; value
ARM COMPILER V2.53,  ltc2600                                                               23/07/06  16:59:03  PAGE 8   

  148:     if(chan==CHANNEL_A){
 0000004E  1C38      MOV         R0,R7 ; chan
 00000050  2800      CMP         R0,#0x0 ; chan
 00000052  D11C      BNE         L_22  ; T=0x0000008E
  149:         if(wv==WAVEFORM_SINE)value*=cal_a.sine_amp;
 00000054  1C30      MOV         R0,R6 ; wv
 00000056  2800      CMP         R0,#0x0 ; wv
 00000058  D109      BNE         L_23  ; T=0x0000006E
 0000005A  4800      LDR         R0,=cal_a + 0x4 ; cal_a+4
 0000005C  8800      LDRH        R0,[R0,#0x0] ; cal_a+4
 0000005E  F7FF      BL          ?C?FCASTU?T  ; T=0x0001  (1) ; ?C?FCASTU?T
 00000060  FFCF      BL          ?C?FCASTU?T  ; T=0x0001  (2) ; ?C?FCASTU?T
 00000062  1C01      MOV         R1,R0
 00000064  1C28      MOV         R0,R5 ; value
 00000066  F7FF      BL          ?C?FPMUL?T  ; T=0x0001  (1) ; ?C?FPMUL?T
 00000068  FFCB      BL          ?C?FPMUL?T  ; T=0x0001  (2) ; ?C?FPMUL?T
 0000006A  1C05      MOV         R5,R0 ; value
 0000006C  E008      B           L_24  ; T=0x00000080
 0000006E          L_23:
  150:         else value*=cal_a.squa_amp;
 0000006E  4800      LDR         R0,=cal_a + 0x6 ; cal_a+6
 00000070  8800      LDRH        R0,[R0,#0x0] ; cal_a+6
 00000072  F7FF      BL          ?C?FCASTU?T  ; T=0x0001  (1) ; ?C?FCASTU?T
 00000074  FFC5      BL          ?C?FCASTU?T  ; T=0x0001  (2) ; ?C?FCASTU?T
 00000076  1C01      MOV         R1,R0
 00000078  1C28      MOV         R0,R5 ; value
 0000007A  F7FF      BL          ?C?FPMUL?T  ; T=0x0001  (1) ; ?C?FPMUL?T
 0000007C  FFC1      BL          ?C?FPMUL?T  ; T=0x0001  (2) ; ?C?FPMUL?T
 0000007E  1C05      MOV         R5,R0 ; value
 00000080          L_24:
  151:         write_data_to_ltc2600(DACA,(unsigned int)value);
 00000080  1C28      MOV         R0,R5 ; value
 00000082  F7FF      BL          ?C?CASTF?T  ; T=0x0001  (1) ; ?C?CASTF?T
 00000084  FFBD      BL          ?C?CASTF?T  ; T=0x0001  (2) ; ?C?CASTF?T
 00000086  1C01      MOV         R1,R0
 00000088  2000      MOV         R0,#0x0
 0000008A  F7FF      BL          write_data_to_ltc2600?T  ; T=0x0001  (1)
 0000008C  FFB9      BL          write_data_to_ltc2600?T  ; T=0x0001  (2)
  152:     }
 0000008E          L_22:
  153:     if(chan==CHANNEL_B){
 0000008E  1C38      MOV         R0,R7 ; chan
 00000090  2801      CMP         R0,#0x1 ; chan
 00000092  D11C      BNE         L_25  ; T=0x000000CE
  154:         if(wv==WAVEFORM_SINE)value*=cal_b.sine_amp;
 00000094  1C30      MOV         R0,R6 ; wv
 00000096  2800      CMP         R0,#0x0 ; wv
 00000098  D109      BNE         L_26  ; T=0x000000AE
 0000009A  4800      LDR         R0,=cal_b + 0x4 ; cal_b+4
 0000009C  8800      LDRH        R0,[R0,#0x0] ; cal_b+4
 0000009E  F7FF      BL          ?C?FCASTU?T  ; T=0x0001  (1) ; ?C?FCASTU?T
 000000A0  FFAF      BL          ?C?FCASTU?T  ; T=0x0001  (2) ; ?C?FCASTU?T
 000000A2  1C01      MOV         R1,R0
 000000A4  1C28      MOV         R0,R5 ; value
 000000A6  F7FF      BL          ?C?FPMUL?T  ; T=0x0001  (1) ; ?C?FPMUL?T
 000000A8  FFAB      BL          ?C?FPMUL?T  ; T=0x0001  (2) ; ?C?FPMUL?T
 000000AA  1C05      MOV         R5,R0 ; value
 000000AC  E008      B           L_27  ; T=0x000000C0
 000000AE          L_26:
  155:         else value*=cal_b.squa_amp;
 000000AE  4800      LDR         R0,=cal_b + 0x6 ; cal_b+6
 000000B0  8800      LDRH        R0,[R0,#0x0] ; cal_b+6
 000000B2  F7FF      BL          ?C?FCASTU?T  ; T=0x0001  (1) ; ?C?FCASTU?T
 000000B4  FFA5      BL          ?C?FCASTU?T  ; T=0x0001  (2) ; ?C?FCASTU?T
 000000B6  1C01      MOV         R1,R0
 000000B8  1C28      MOV         R0,R5 ; value
ARM COMPILER V2.53,  ltc2600                                                               23/07/06  16:59:03  PAGE 9   

 000000BA  F7FF      BL          ?C?FPMUL?T  ; T=0x0001  (1) ; ?C?FPMUL?T
 000000BC  FFA1      BL          ?C?FPMUL?T  ; T=0x0001  (2) ; ?C?FPMUL?T
 000000BE  1C05      MOV         R5,R0 ; value
 000000C0          L_27:
  156:         write_data_to_ltc2600(DACE,(unsigned int)value);
 000000C0  1C28      MOV         R0,R5 ; value
 000000C2  F7FF      BL          ?C?CASTF?T  ; T=0x0001  (1) ; ?C?CASTF?T
 000000C4  FF9D      BL          ?C?CASTF?T  ; T=0x0001  (2) ; ?C?CASTF?T
 000000C6  1C01      MOV         R1,R0
 000000C8  2004      MOV         R0,#0x4
 000000CA  F7FF      BL          write_data_to_ltc2600?T  ; T=0x0001  (1)
 000000CC  FF99      BL          write_data_to_ltc2600?T  ; T=0x0001  (2)
  157:     }
 000000CE          L_25:
  158:     return 1;
 000000CE  2001      MOV         R0,#0x1
  159: }
 000000D0          L_19:
 000000D0  BCF0      POP         {R4-R7}
 000000D2  BC08      POP         {R3}
 000000D4  4718      BX          R3
 000000D6          ENDP ; 'set_amplitude?T'



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


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

⌨️ 快捷键说明

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